我有一个字节[]字段,它是我需要加密的文件内容。没有什么特别或花哨的东西,仅仅足以确保下一个获得它的人不会轻易地解码它,而不需要付出一些努力。我会使用.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