猿问

java.security.NoSuchAlgorithmException:

我正在尝试在 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相同的结果我可以找到任何帮助...


阿波罗的战车
浏览 196回答 1
1回答

GCT1015

JCEHandler handler = new JCEHandler("com.sun.crypto.provider.SunJCE");您正在强制使用SunJCE可能没有相应加密实现的JCE 提供程序DES/ECB/NoPadding,您可以尝试其他算法或使用SpongyCastle作为您的安全提供程序。更新: ECB模式已经被证明是弱的,你不应该使用 ECB模式。
随时随地看视频慕课网APP

相关分类

Java
我要回答