我有一個字節[]字段,它是我需要加密的文件內容。沒有什麼特別或花哨的東西,僅僅足以確保下一個獲得它的人不會輕易地解碼它,而不需要付出一些努力。我會使用.Net Framework 4.0附帶的加密技術,但我絕對不需要讓文件變得更大。C#字節[]加密
我只想簡單地顛倒數組或添加幾個字節到最後...?
如果我可以避免讓陣列變得更大,那就太好了。
有什麼建議嗎?
謝謝!
我有一個字節[]字段,它是我需要加密的文件內容。沒有什麼特別或花哨的東西,僅僅足以確保下一個獲得它的人不會輕易地解碼它,而不需要付出一些努力。我會使用.Net Framework 4.0附帶的加密技術,但我絕對不需要讓文件變得更大。C#字節[]加密
我只想簡單地顛倒數組或添加幾個字節到最後...?
如果我可以避免讓陣列變得更大,那就太好了。
有什麼建議嗎?
謝謝!
添加1-16字節是否受傷? AES默認使用以下方法填充:
private static void EncryptThenDecrypt()
{
byte[] message; // fill with your bytes
byte[] encMessage; // the encrypted bytes
byte[] decMessage; // the decrypted bytes - s/b same as message
byte[] key;
byte[] iv;
using (var rijndael = new RijndaelManaged())
{
rijndael.GenerateKey();
rijndael.GenerateIV();
key = rijndael.Key;
iv = rijndael.IV;
encMessage = EncryptBytes(rijndael, message);
}
using (var rijndael = new RijndaelManaged())
{
rijndael.Key = key;
rijndael.IV = iv;
decMessage = DecryptBytes(rijndael, encMessage);
}
}
private static byte[] EncryptBytes(
SymmetricAlgorithm alg,
byte[] message)
{
if ((message == null) || (message.Length == 0))
{
return message;
}
if (alg == null)
{
throw new ArgumentNullException("alg");
}
using (var stream = new MemoryStream())
using (var encryptor = alg.CreateEncryptor())
using (var encrypt = new CryptoStream(stream, encryptor, CryptoStreamMode.Write))
{
encrypt.Write(message, 0, message.Length);
encrypt.FlushFinalBlock();
return stream.ToArray();
}
}
private static byte[] DecryptBytes(
SymmetricAlgorithm alg,
byte[] message)
{
if ((message == null) || (message.Length == 0))
{
return message;
}
if (alg == null)
{
throw new ArgumentNullException("alg");
}
using (var stream = new MemoryStream())
using (var decryptor = alg.CreateDecryptor())
using (var encrypt = new CryptoStream(stream, decryptor, CryptoStreamMode.Write))
{
encrypt.Write(message, 0, message.Length);
encrypt.FlushFinalBlock();
return stream.ToArray();
}
}
不要發明自己的加密機制(即通過模糊處理的安全性),請使用classes provided by the framework之一。
爲什麼你需要這種加密? – 2010-12-21 16:11:13
ROT13? (最少15個字符) – 2010-12-21 16:12:57
[.NET中的加密/解密字符串]可能的重複(http://stackoverflow.com/questions/202011/encrypt-decrypt-string-in-net) – Bobby 2010-12-21 16:14:08