有人可以给我加密和解密C#中的大文件的代码或有价值的消息吗? 我正在尝试使用TripleDES。它应该是安全,快速和可靠的 这里加密和解密应该基于我的密钥。
答案 0 :(得分:1)
答案 1 :(得分:1)
我发现了一篇好文章。
答案 2 :(得分:0)
<强> Encrypt/Decrypt with TripleDES using C# 强>
希望这有助于! :)
答案 3 :(得分:0)
以下是其他人正在寻找的代码。
public static byte[] Encrypt(byte[] plain, String key)
{
byte[] keyArray = SoapHexBinary.Parse(key).Value;
TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider();
tdes.Key = keyArray;
tdes.Mode = CipherMode.CBC;
tdes.Padding = PaddingMode.None;
tdes.IV = new byte[8];
ICryptoTransform cTransform = tdes.CreateEncryptor();
byte[] resultArray = cTransform.TransformFinalBlock(plain, 0, plain.Length);
tdes.Clear();
return resultArray;
}
public static byte[] Decrypt(byte[] cipher, String key)
{
byte[] keyArray = SoapHexBinary.Parse(key).Value;
TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider();
tdes.Key = keyArray;
tdes.Mode = CipherMode.CBC;
tdes.Padding = PaddingMode.None;
tdes.IV = new byte[8];
ICryptoTransform cTransform = tdes.CreateDecryptor();
byte[] resultArray = cTransform.TransformFinalBlock(cipher, 0, cipher.Length);
tdes.Clear();
return resultArray;
}
请记住,我是以HexBinary格式传递密钥。上面的代码使用带有初始向量{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}的CBC密码模式,并且填充设置为None,因为传入的数据总是64位的倍数。因此,如果您的数据大小未修复,则可能需要设置填充。