首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加密文件并将其发送到

加密文件并将其发送到
EN

Stack Overflow用户
提问于 2013-05-18 22:04:46
回答 2查看 1.3K关注 0票数 2

我需要使用AES 192对文件进行加密,然后通过套接字将其发送到客户端。我使用以下代码对文件进行加密:

代码语言:javascript
复制
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();

我想知道我现在如何通过套接字发送这个加密的临时文件,以便接收者可以重建文件并解密它。有人能给我一些指导或指导吗?提前感谢所有人

EN

回答 2

Stack Overflow用户

发布于 2013-05-18 22:31:52

您可以为套接字创建NetworkStream实例,然后调用encryptStream.CopyTo(myNetworkStream);

票数 1
EN

Stack Overflow用户

发布于 2013-05-18 22:32:40

考虑使用TcpClient连接到服务器并发送数据。我不打算写一个完整的答案,因为你已经指出这是学校作业,但看看例子是如何写数据的:

代码语言:javascript
复制
// Get a client stream for reading and writing. 
NetworkStream networkStream = client.GetStream();

// Send the message to the connected TcpServer. 
networkStream.Write(data, 0, data.Length);

您可能希望避免稍微调整它,以使用CopyTo将数据直接从密码流写入网络流。

这里假设你不需要解决secure key exchange的问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16625150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档