我正在尝试使用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。
发布于 2013-04-01 03:15:08
您应该使用CryptoStream对象,该对象将自动调用正确的ICryptoTransform.TransformFinalBlock和ICryptoTransform.TransformBlock方法。
您尚未发布加密代码,但请检查填充模式是否相同(即PaddingMode.PKCS7)以及初始向量是否设置为相同的字符串。
https://stackoverflow.com/questions/15731911
复制相似问题