我正在使用 PBE 加密来加密和解密 Android 应用程序上的某些文本,但当我使用错误的私钥解密文本时,我收到 BadPaddingException: 并显示“填充块损坏”消息。
我的问题是,由于我不太熟悉 Java 中的加密,这是否是加密 API 的正常行为,因为我需要在输入错误密钥时执行一些逻辑,但我不知道私有密钥密钥,我也不将其存储在任何地方(仅存储加密和解密的检查文本)。
谢谢,
米哈伊
大多数键不匹配导致“不良填充错误”是正常的。但这也不是100%万无一失的。例如,在使用 PKCS#5 填充(一种非常常见的填充数据的方法)的对称加密的情况下,大约 0.4% 的错误密钥将not导致填充不良。解密的数据仍然是垃圾,但是,出于奇怪的偶然,这些垃圾最终以有效的填充结束。你的申请must not明确解密失败是由于错误的填充,还是由于异常有效的填充造成的垃圾:该信息(密钥是否是产生正确填充的 0.4% 密钥的一部分)是泄漏,可能会产生严重后果。已经存在一些针对 SSL 连接的攻击。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)