【发布时间】:2012-07-19 14:40:47
【问题描述】:
我正在编写对文件进行 AES 加密/解密的 android 应用程序。我希望能够检测是否指定了不正确的密码,因此不匹配的密钥被派生用于解密。 我正在使用带有 256 位密钥的 AES/CBC/PKCS7Padding。 如果我执行 cipher.doFinal() 我可以尝试/捕获 BadPaddingException ,它会告诉我出现问题并且可能密钥不正确。但是如果我使用 CipherInputStream 来读取加密文件,我不会得到关于填充正确性的反馈。因此,如果我故意指定错误的密码,它会解密文件,然后报告一切正常,但解密的文件完全是垃圾。 所以我的问题是如何在使用 CipherInputStream 时检测到错误的填充?
【问题讨论】:
-
我正在使用 PBEWithSHA256And256BitAES-CBC-BC
标签: java android encryption aes padding