原先的代码使用时出现了“填充无效,无法被移除”的错误。最后花了很长时间仔细调试发现出现的一个函数违没有执行导致的错误。
也就是:
RijndaelManaged rDel = new RijndaelManaged(); //这是我用的AES加密算法
//下面的属性设置在加密解密时不一致出现“填充无效,无法被移除”的错误。但是这只是其中的一个原因。
rDel.Key = resultArray;
rDel.BlockSize = 128;
rDel.Mode = CipherMode.ECB;
rDel.Padding = PaddingMode.Zeros;
//结束,我没有上面所有的属性都测试,发生错误的时候使用设置的加密,没有设置的解密出现错误
加密
public static byte[] Encrypt(byte[] toEncryptArray)
{
ICryptoTransform cTransform = rDel.CreateEncryptor();
return cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
}
解密
public static byte[] Decrypt(byte[] toDecryptArray)
{
ICryptoTransform cTransform = rDel.CreateDecryptor();
return cTransform.TransformFinalBlock(toDecryptArray, 0, toDecryptArray.Length);
}