0

一所大学的收发室急需新的软件来帮助他们的运营。当前的程序是在 90 年代初期以他们认为是 python 的方式编写的。我和另外两个人正在对其进行现代化改造。我负责网络和服务器。学校要求我们对通过网络发送的任何敏感学生数据进行加密。由于我们使用两种不同的语言(Java 和 C#),我不得不进行一些挖掘以找到加密的共同点。AES128/CBC/ISO10126 是常见的一种。我遇到的问题是,如果我向客户端发送服务器密钥和 IV,以便客户端可以加密并返回会话密钥和 IV,当服务器读取它时,我丢失了 3 个字节的数据,我无法得到它完全解密。这是我在发回某些东西后在服务器端阅读的方式

        ICryptoTransform decrypter = myProvider.CreateDecryptor(myProvider.Key, myProvider.IV);
        byte[] sKey = new byte[myClient.ReceiveBufferSize];
        Console.WriteLine(ASCIIEncoding.ASCII.GetString(sKey));
        Console.WriteLine("Key Length: " + sKey.Length);
        byte[] sessionKey = new byte[sKey.Length];
        sessionKey = decrypter.TransformFinalBlock(sessionKey, 0, sessionKey.Length);

任何想法可能导致我以某种方式丢弃 3 个字节的数据?通常我不会不高兴,但是这三个字节对于安全连接很重要。

4

0 回答 0