我正在使用这样的代码来加密文件.
FileStream fsInput = new FileStream(ifile_path,
FileMode.Open,
FileAccess.Read);
FileStream fsEncrypted = new FileStream(ofile_path,
FileMode.Create,
FileAccess.Write);
AesCryptoServiceProvider AES = new AesCryptoServiceProvider();
AES.Mode = CipherMode.CBC;
AES.KeySize = 256;
iv = AES.IV;
AES.Key = key;
ICryptoTransform aesencrypt = AES.CreateEncryptor();
CryptoStream cryptostream = new CryptoStream(fsEncrypted,
aesencrypt,
CryptoStreamMode.Write);
byte[] bytearrayinput = new byte[fsInput.Length];
fsInput.Read(bytearrayinput, 0, bytearrayinput.Length);
cryptostream.Write(bytearrayinput, 0, bytearrayinput.Length);
cryptostream.Close();
fsInput.Close();
fsEncrypted.Close();
Run Code Online (Sandbox Code Playgroud)
但是,虽然此代码成功加密.txt和.xml文件,但它不适用于其他文件类型,如.docx或图像文件格式.我可以对代码进行哪些更改以将功能扩展到所有此类文件类型?
小智 5
您希望使用BinaryReader和BinaryWriter来执行文件I/O. 普通的StreamReader将尝试使用特定的编码读取字节,因为它实现了TextReader并且会破坏原始数据类型.这就是纯文本.txt和.xml工作的原因,而.docx文件却没有.
| 归档时间: |
|
| 查看次数: |
332 次 |
| 最近记录: |