Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.security.NoSuchAlgorithmException:提供程序SunJCE不提供DES/ECB/NoPadding_Java_Android_Encryption_Jpos - Fatal编程技术网

java.security.NoSuchAlgorithmException:提供程序SunJCE不提供DES/ECB/NoPadding

java.security.NoSuchAlgorithmException:提供程序SunJCE不提供DES/ECB/NoPadding,java,android,encryption,jpos,Java,Android,Encryption,Jpos,我试图在Android中使用org.jposjcehandler解密数据,如下代码所示 public static byte[] decrypt(byte[] data, byte[] key, String algorithm) throws JCEHandlerException { byte[] plainText; JCEHandler handler = new JCEHandler("com.sun.crypto.provider.SunJCE"); Secr

我试图在Android中使用org.jposjcehandler解密数据,如下代码所示

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;
}
byteKey=Hex.decodeHex("abcdef0123456789".toCharArray());
Log.d("aabb","byteKey:"+byteKey);
TMK = Hex.decodeHex("abcdef0123456789".toCharArray());
byteKey = Crypto.decrypt(byteKey,TMK,"DES");
但它表示,提供商SunJCE不提供DES/ECB/NoPadding

我调用这个函数的代码如下

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;
}
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中解密数据我可以找到任何帮助请

JCEHandler handler = new JCEHandler("com.sun.crypto.provider.SunJCE");
您正在强制JCE提供程序使用
SunJCE
,该提供程序可能没有针对
DES/ECB/NoPadding
的相应加密实现,您可以尝试其他算法或用作您的安全提供程序

更新:模式已被证明很弱,您不应使用ECB模式

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


更新:ECB模式已被证明很弱,您不应使用ECB模式。

最好使用“AES”而不是“DES”更好地使用“AES”而不是“DES”好的,谢谢,完全清楚了,我会试试SpongyCastls,如果我遇到任何问题我会反馈给你好的,谢谢,完全清楚了,我会试试SpongyCastls,如果我遇到任何问题我会反馈给你。。