如何防止加密(AES)数据被篡改?

时间:2017-08-14 15:25:12

标签: c# aes

我希望在将数据保存到数据库后加密数据(AES)并在读取时对其进行解密。如何防止数据在数据库中被篡改?我的算法从https://msdn.microsoft.com/en-us/library/system.security.cryptography.rijndaelmanaged(v=vs.110).aspx改进而来。

我已经测试过,在加密的密文中随便添加" a",解密会抛出一个异常(填充无效并且不会删除),添加任何字符,会抛出异常吗?没有这种可能性:不抛出异常,你可以解密,但结果不是原始数据

string original = "getABEDKK";
string password = "123456kfjsEYR+*j";
string cipherText = Encrypt(original, password);
MessageBox.Show("After encrypt:"+cipherText);

string plainText = Decrypt("a"+cipherText, password);
MessageBox.Show("After decrypt:" + plainText);

1 个答案:

答案 0 :(得分:0)

添加校验和或验证字段之类的内容。然后在解密数据的加密中添加一个图层,检查验证并在验证字段不正确时抛出异常。