【发布时间】:2017-06-08 04:23:00
【问题描述】:
情况:
- 字符串在 Java 环境中被加密 (javax.crypto.Cipher/PBEWithMD5AndDES),base64 编码
- 字符串被转移到 Android
- 使用相同的加密解码器,只是 base64 库不同
=> 我们无法解密,得到 p>
java.lang.SecurityException:无法解密:垫块损坏
在分析过程中,我们比较了传递给 decode() 方法的字节数组,以跳过所有可能的 base64 问题,并且数组是相同的。
同样,两个相同的字节数组,传递给同一个 java 模块,产生不同的结果(在 java 上正常,在 android 上异常)。
传递给密码模块的参数是硬编码的,并且在两个平台上都是相同的。
区别在哪里
【问题讨论】:
-
请提供您用于加密和解密的实际代码以及适用于桌面 Java 但不适用于 Android 的测试向量。
-
感谢您的报价。看起来我们找到了原因 - 使用了不同的提供程序。
标签: android encryption base64