Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用三元组对文件进行加密和解密_C# - Fatal编程技术网

C# 使用三元组对文件进行加密和解密

C# 使用三元组对文件进行加密和解密,c#,C#,有人能给我一些代码或有价值的建议来加密和解密C#中的一个大文件吗? 我试着用TripleDES做这个。它应该是安全、快速和可靠的 这里的加密和解密应该基于我的密钥完成。下面是一段代码,如果其他人正在寻找它 public static byte[] Encrypt(byte[] plain, String key) { byte[] keyArray = SoapHexBinary.Parse(key).Value; TripleDESCrypto

有人能给我一些代码或有价值的建议来加密和解密C#中的一个大文件吗? 我试着用TripleDES做这个。它应该是安全、快速和可靠的
这里的加密和解密应该基于我的密钥完成。

下面是一段代码,如果其他人正在寻找它

    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;
    }
请记住,我是以二进制格式传递密钥的。上面的代码使用初始向量{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}的CBC密码模式,填充设置为无,因为我传入的数据总是64位的倍数。因此,如果数据大小不固定,则可能需要设置填充