C# C“Rijndael加密例外”;要加密的数据长度无效。”;
我试图用rijndael算法加密和解密一个文件,但是我得到了错误“要加密的数据长度无效”。我可以加密这个文件,但不能解密。这是我的解密函数C# C“Rijndael加密例外”;要加密的数据长度无效。”;,c#,encryption,rijndael,C#,Encryption,Rijndael,我试图用rijndael算法加密和解密一个文件,但是我得到了错误“要加密的数据长度无效”。我可以加密这个文件,但不能解密。这是我的解密函数 public static byte[] Decrypt(byte[] toEncryptArray) { byte[] keyArray = UTF8Encoding.UTF8.GetBytes("-key-"); RijndaelManaged rDel = new RijndaelManaged();
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。您应该使用该对象,该对象将自动调用正确的ICRyptTransform.TransformFinalBlock
和ICRyptTransform.TransformBlock
方法
您尚未发布加密代码,但请检查填充模式是否相同(即
PaddingMode.PKCS7
),以及启动向量是否设置为相同的字符串。您确定这是您遇到的异常吗?当你试图设置密钥时,你应该得到一个,因为它的长度无效。@Lee是的,我确信这是我得到的例外,那不是我真正的密钥。真正的密钥要长得多,我已经用另一个密钥测试了它,然后它出现了一个错误,事实上与密钥有关。请添加您的加密代码。可能是重复的