【发布时间】:2013-05-18 14:04:46
【问题描述】:
我需要使用 AES 192 加密文件并通过套接字将其发送到客户端。 我正在使用此代码来加密文件:
string outputFile = "crypted";
//Confidentiality
RijndaelManaged AES192Confidentiality = new RijndaelManaged();
AES192Confidentiality.KeySize = 192;
AES192Confidentiality.BlockSize = 192;
AES192Confidentiality.IV = ConfIV;
AES192Confidentiality.Key = ConfKey;
AES192Confidentiality.Mode = CipherMode.CBC;
FileStream inputFileStream = new FileStream(par.GetFilePath(), FileMode.Open, FileAccess.Read);
FileStream outputFileStream = new FileStream(outputFile, FileMode.Create, FileAccess.Write);
byte[] inputFileData = new byte[(int)inputFileStream.Length];
inputFileStream.Read(inputFileData, 0, (int)inputFileStream.Length);
CryptoStream encryptStream = new CryptoStream(outputFileStream, AES192Confidentiality.CreateEncryptor(), CryptoStreamMode.Write);
encryptStream.Write(inputFileData, 0, (int)inputFileStream.Length);
encryptStream.FlushFinalBlock();
encryptStream.Close();
我想知道我现在如何通过套接字发送这个加密的临时文件,以便接收者可以重建文件并解密它。 有人可以给我一些教程或指南吗? 先谢谢大家了
【问题讨论】:
-
如果您愿意使用网络库,请查看这篇文章networkcomms.net/using-encryption。我是这个库的开发者。
-
感谢您的回答,但由于该程序是针对学校作业的,因此我不允许使用外部库:)
-
首先解决没有套接字的解密问题。您能否在现有程序中添加更多语句,以打开您刚刚编写的输出流作为 second 输入流,读取加密字节,解密这些字节,然后打印出原始明文?因为那是最难的部分。
-
嗯,实际上,这还不是最难的部分。最困难的部分是通过套接字发送密钥,以便窃听者无法恢复密钥。但一次解决一个问题;如果您不知道接收方将如何解密消息,请先解决该问题。
标签: c# file sockets encryption