C#Rijndael CryptographicException“要加密的数据长度无效。”

时间:2013-03-31 16:50:33

标签: c# encryption rijndael

我正在尝试使用rijndael algorythm加密和解密文件,但我收到错误“要加密的数据长度无效。”。我能够加密文件,但我不能解密它。这是我的解密功能;

    public static byte[] Decrypt(byte[] toEncryptArray)
    {
        byte[] keyArray = UTF8Encoding.UTF8.GetBytes("-key-");
        RijndaelManaged rDel = new RijndaelManaged();
        rDel.Key = keyArray;
        rDel.Padding = PaddingMode.PKCS7;
        ICryptoTransform cTransform = rDel.CreateDecryptor();
        return cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
    }

老实说,我不知道我做错了什么,因为我可以完全加密它。我试图解密的文件是11 kb。

1 个答案:

答案 0 :(得分:0)

您应该使用CryptoStream对象,该对象会自动调用正确的ICryptoTransform.TransformFinalBlockICryptoTransform.TransformBlock方法。

您尚未发布加密代码,但检查 Padding 模式是否相同(即PaddingMode.PKCS7)并将启动向量设置为相同的字符串。