gpt4 book ai didi

java.security.NoSuchAlgorithmException : Provider SunJCE does not provide DES/ECB/NoPadding

转载 作者:行者123 更新时间:2023-11-30 05:03:54 25 4
gpt4 key购买 nike

我正在尝试在 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;
}

但它捕获异常说 Provider 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 的相同结果吗我能找到任何帮助吗.. .

最佳答案

JCEHandler handler = new JCEHandler("com.sun.crypto.provider.SunJCE");

您正在强制 JCE 提供商使用 SunJCE,它可能没有针对 DES/ECB/NoPadding 的相应加密实现,您可以尝试其他算法或使用 SpongyCastle 作为您的安全提供商。

更新 ECB 模式已经被证明是弱的,你不应该使用 ECB 模式。

关于java.security.NoSuchAlgorithmException : Provider SunJCE does not provide DES/ECB/NoPadding,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54921194/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com