我正在尝试在 Android 中使用 org.jpos JCEHandler 解密数据,如下面的代码public static byte[] decrypt(byte[] data, byte[] key, String algorithm) throws JCEHandlerException{ byte[] plainText; JCEHandler handler = new JCEHandler("com.sun.crypto.provider.SunJCE"); SecretKeySpec secretKeySpec = new SecretKeySpec(key, algorithm); plainText = handler.decryptData(data, secretKeySpec); return plainText;}但它捕获异常说提供者 SunJCE 不提供DES/ECB/NoPadding我像下面的代码一样调用这个函数byteKey=Hex.decodeHex("abcdef0123456789".toCharArray());Log.d("aabb","byteKey:"+byteKey);TMK = Hex.decodeHex("abcdef0123456789".toCharArray());byteKey = Crypto.decrypt(byteKey,TMK,"DES");byteKey 的日志是:[B@1cbe2358我该怎么办,我尝试了很多来解决它,但总是同样的错误,我可以找到一些代码在 android 中执行与handler.decryptData相同的结果我可以找到任何帮助...
1 回答

GCT1015
TA贡献1827条经验 获得超4个赞
JCEHandler handler = new JCEHandler("com.sun.crypto.provider.SunJCE");
您正在强制使用SunJCE
可能没有相应加密实现的JCE 提供程序DES/ECB/NoPadding
,您可以尝试其他算法或使用SpongyCastle作为您的安全提供程序。
更新: ECB模式已经被证明是弱的,你不应该使用 ECB模式。
添加回答
举报
0/150
提交
取消