gpt4 book ai didi

c# - 使用 tripleDES 加密和解密文件

转载 作者:太空宇宙 更新时间:2023-11-03 11:53:41 24 4
gpt4 key购买 nike

有人可以给我在 C# 中加密和解密大文件的代码或有值(value)的建议吗? 我正在尝试使用 TripleDES 来做到这一点。它应该是安全、快速和可靠的这里应该根据我的 key 完成加密和解密。

最佳答案

以下是一段代码,如果有人正在寻找的话。

    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 格式传递 key 。上面的代码使用 CBC 密码模式,初始向量 { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} 并且填充设置为 None 因为我传入的数据始终是 64 位的倍数。因此,如果您的数据大小不固定,那么您可能需要设置填充。

关于c# - 使用 tripleDES 加密和解密文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1327404/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com