如何检测解密失败?我有以下测试代码:
{{1}}
文件“rwcx.ini”只是不包含加密数据的纯文本文件。我使用带有CBC的AES 256和安装了“GetIt”的Lockbox 3.5版本。我期望plainms内存流为空或者因为解密被保证失败而引发异常。相反,我在普通中得到了垃圾,也不例外。
如何检测解密失败?我必须能够检测到错误的密码或损坏的输入数据。我错过了什么?
答案 0 :(得分:2)
加密只是一种转换,它本身没有正确解密的概念。
一种方法是创建加密数据的HMAC并将其预先加密到加密数据,并在解密HMAC上加密数据并比较HMAC。小心使用HMAC比较功能,该功能需要相同的时间用于匹配和不匹配的值。