c# Rijndael CryptographicException &;要加密的数据长度无效.&;

本文关键字:数据 无效 Rijndael CryptographicException 加密 | 更新日期: 2023-09-27 18:06:47

我正在尝试加密和解密rijndael算法的文件,但我一直得到错误"加密的数据长度无效。"。我能加密这个文件,但不能解密。这是我的解密函数;

    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);
    }

我真的不知道我做错了什么,因为我可以完全加密它。我要解密的文件是11kb

c# Rijndael CryptographicException &;要加密的数据长度无效.&;

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

您还没有发布加密代码,但检查填充模式相同(即PaddingMode.PKCS7)和起始向量设置为相同的字符串。