为了账号安全,请及时绑定邮箱和手机立即绑定

java.security.NoSuchAlgorithmException:

java.security.NoSuchAlgorithmException:

阿波罗的战车 2022-07-14 16:30:42
我正在尝试在 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模式。


查看完整回答
反对 回复 2022-07-14
  • 1 回答
  • 0 关注
  • 195 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号