我希望在将数据保存到数据库后加密数据(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);
答案 0 :(得分:0)
添加校验和或验证字段之类的内容。然后在解密数据的加密中添加一个图层,检查验证并在验证字段不正确时抛出异常。