有沒有什麼辦法可以在不使用流的情況下加密一個bytearray?.NET加密bytearray
1
A
回答
5
如果您擔心磁盤I/O,則可以使用MemoryStream。
但是,RSACryptoServiceProvider類將在字節數組上運行。該類使用RSA算法的實現執行非對稱加密和解密。
的例子here顯示如何使用字節數組
2
好了,你可以寫自己的加密算法 - 但它更容易只是使用內置的API寫流傳輸到MemoryStream
然後您可以轉換到使用ToArray
一個字節數組。
-1
使用塊暗號做到這一點,並實現它自己。
但是,這幾乎是毫無意義的,因爲在字節數組上使用MemoryStream應該工作得很好,並且會使用經過良好測試的實現。
當你在談論加密時自己實現一些東西,通常是一個壞主意。
0
使用微軟企業庫的Cryptography Application Block你可以做到這一點,但我同意其他人的觀點,即你沒有真正從不使用流的好處。
0
14
其實你不需要使用任何流的所有字節進行操作。 你唯一需要的就是調用TransformFinalBlock()ICryptoTransform的方法可以是從SymmetricAlgorithm類派生的任何算法的加密解密或
public class CryptoProvider
{
private SymmetricAlgorithm _algorithm = new RijndaelManaged();
public byte[] EncryptData(byte[] data, string password)
{
GetKey(password);
ICryptoTransform encryptor = _algorithm.CreateEncryptor();
byte[] cryptoData = encryptor.TransformFinalBlock(data, 0, data.Length);
return cryptoData;
}
public byte[] DecryptData(byte[] cryptoData, string password)
{
GetKey(password);
ICryptoTransform decryptor = _algorithm.CreateDecryptor();
byte[] data = decryptor.TransformFinalBlock(cryptoData, 0, cryptoData.Length);
return data;
}
private void GetKey(string password)
{
byte[] salt = new byte[8];
byte[] passwordBytes = Encoding.ASCII.GetBytes(password);
int length = Math.Min(passwordBytes.Length, salt.Length);
for (int i = 0; i < length; i++)
salt[i] = passwordBytes[i];
Rfc2898DeriveBytes key = new Rfc2898DeriveBytes(password, salt);
_algorithm.Key = key.GetBytes(_algorithm.KeySize/8);
_algorithm.IV = key.GetBytes(_algorithm.BlockSize/8);
}
}
相關問題
- 1. 加密.net
- 2. .NET加密
- 3. .net將bytearray轉換爲double []
- 4. RSA加密用Java/.NET和解密.NET
- 5. 在.Net中加密/解密Sql Server 2005加密列NET
- 6. Java RSA加密 - 解密.NET
- 7. RSA .NET加密Java解密
- 8. 加密加速器和.NET
- 9. .Net |加密| ECC |如何使用.net框架執行ECC加密解密?
- 10. 加密WinForms中的密碼app.config,.NET
- 11. 加密/解密大型文件(.NET)
- 12. 加密和解密圖片.NET
- 13. 加密在SQL Server /解密在.Net 4
- 14. .Net RSA加密,Java RSA解密
- 15. RSA加密在PHP中解密.NET
- 16. 加密/ .NET 2.0中解密餅乾(C#)
- 17. 如何存儲加密密鑰.NET
- 18. 加密在SQL Server中的.NET /解密
- 19. .NET RSA加密:最小密鑰大小?
- 20. 使用.NET加密和解密數字
- 21. .net加密數據庫表
- 22. 加密.NET應用程序
- 23. .net程序集加密
- 24. .Net簡單的RSA加密
- 25. .NET web.config加密失敗!
- 26. .NET私鑰Rsa加密
- 27. Aes加密.Net和Js
- 28. .NET中的多方加密?
- 29. AES在.NET中加密並使用Node.js加密解密?
- 30. 保存bytearray(加密的密碼)爲圖片使用中型圖書館WP8