4
A
回答
9
加密:
private const int SaltSize = 8;
public static void Encrypt(FileInfo targetFile, string password)
{
var keyGenerator = new Rfc2898DeriveBytes(password, SaltSize);
var rijndael = Rijndael.Create();
// BlockSize, KeySize in bit --> divide by 8
rijndael.IV = keyGenerator.GetBytes(rijndael.BlockSize/8);
rijndael.Key = keyGenerator.GetBytes(rijndael.KeySize/8);
using(var fileStream = targetFile.Create())
{
// write random salt
fileStream.Write(keyGenerator.Salt, 0, SaltSize);
using(var cryptoStream = new CryptoStream(fileStream, rijndael.CreateEncryptor(), CryptoStreamMode.Write))
{
// write data
}
}
}
和解密:
public static void Decrypt(FileInfo sourceFile, string password)
{
// read salt
var fileStream = sourceFile.OpenRead();
var salt = new byte[SaltSize];
fileStream.Read(salt, 0, SaltSize);
// initialize algorithm with salt
var keyGenerator = new Rfc2898DeriveBytes(password, salt);
var rijndael = Rijndael.Create();
rijndael.IV = keyGenerator.GetBytes(rijndael.BlockSize/8);
rijndael.Key = keyGenerator.GetBytes(rijndael.KeySize/8);
// decrypt
using(var cryptoStream = new CryptoStream(fileStream, rijndael.CreateDecryptor(), CryptoStreamMode.Read))
{
// read data
}
}
+0
在寫入和讀取數據時使用哪個對象? – writeToBhuwan 2013-05-06 11:31:23
+0
如果您使用CryptoStream進行網絡通信,您應該找到一個流密碼。 Rijndael通常用作分組密碼。流密碼適用於小塊數據,這在聊天網絡流中是典型的。與分組密碼相比,流密碼可以更安全,特別是當數據流不是塊狀時。分組密碼需要填充和鏈接。流密碼可以花費停機時間來計算更多的僞隨機密鑰,然後使用非常有效的XOR進行實際的加密/解密操作。 – Todd 2017-02-24 06:13:49
2
使用RijndaelManaged類進行加密,並使用Rfc2898DeriveBytes生成密碼的密鑰(和IV)。
相關問題
- 1. 如何在iOS中創建受密碼保護的zip文件
- 2. 如何在php中創建受密碼保護的文件?
- 3. 如何在C#中創建一個受密碼保護的文件
- 4. 如何創建受密碼保護的pdf文件
- 5. 加密,受密碼保護的文件創建
- 6. 創建受密碼保護的備份
- 7. 使用java創建受密碼保護的文本文件
- 8. 創建受密碼保護的zip文件
- 9. 使用TrueZip創建受密碼保護的ZIP文件
- 10. hash_file如何在PHP中用於受密碼保護的文件?
- 11. 如何在jboss中部署受密碼保護的war文件
- 12. 如何在java中提取受密碼保護的.rar文件?
- 13. 連接受密碼保護的文件
- 14. VBA創建密碼保護文件
- 15. PHP創建密碼保護文件夾
- 16. 創建.tar文件時保護密碼?
- 17. 如何使用jxta創建受密碼保護的同級組?
- 18. 如何閱讀在C#中的受密碼保護的zip文件
- 19. 在java中創建一個受密碼保護但不可移除的文件
- 20. 在nodejs中使用子進程創建受密碼保護的zip文件
- 21. 如何在SSIS中訪問受密碼保護的文件夾中的文件?
- 22. 如何將受密碼保護的PDF保存爲非密碼保護的PDF
- 23. 如何在vb.net窗體中創建受密碼保護的按鈕
- 24. 我們如何在wordpress中創建一些受密碼保護的頁面
- 25. 檢測受密碼保護的文檔
- 26. 如何使用php生成受密碼保護的csv文件
- 27. ASP .NET OpenXML:如何創建密碼保護字文件
- 28. 如何檢查文件是否受密碼保護/加密或不在java中
- 29. 在node.js中生成受密碼保護的ZIP文件
- 30. 在Java中打開受密碼保護的Word文件?
你真的應該說什麼時候你說, 「密碼保護的文件」 你的意思。你的意思是當有人試圖打開它時,彈出一個「輸入密碼」對話框,或者是什麼? – 2009-04-11 23:14:44
是的,這的確是我的意思 – Peter 2009-04-12 01:09:54