使用tripleDES加密和解密文件

时间:2009-08-25 10:33:28

标签: c#

有人可以给我加密和解密C#中的大文件的代码或有价值的消息吗?  我正在尝试使用TripleDES。它应该是安全,快速和可靠的 这里加密和解密应该基于我的密钥。

4 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

我发现了一篇好文章。

TripleDES

答案 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位的倍数。因此,如果您的数据大小未修复,则可能需要设置填充。