错误:com.sun.crypto.provider.AESCipher $ General无法转换为javax.crypto.CipherSpi

Purvesh Kachhiya:

您好,我在Liferay dxp项目中使用Paytm校验和依赖性

但是我越来越 error :com.sun.crypto.provider.AESCipher$General cannot be cast to javax.crypto.CipherSpi

摇篮特性:

dependencies {compile fileTree(dir: 'libs/', include: '*.jar') compileInclude name: 'paytmchecksum-1.1'}

PaytmUtil包含以下代码。

private static String getCheckSumPayTm(TreeMap<String, String> reqMap){

    CheckSumServiceHelper checkSumServiceHelper =  CheckSumServiceHelper.getCheckSumServiceHelper();

    String checksum = null;
    try {
        checksum =  checkSumServiceHelper.genrateCheckSum("paytmKey", reqMap.toString());
        log.info("PAYTM CHECKSUM ================== "  + checksum);
    } catch (Exception e) {
        e.printStackTrace();
        log.error("error :" + e.getMessage());
    }
    return checksum;
}
奥拉夫·科克(Olaf Kock):

假设根据静态类层次结构,您期望com.sun.crypto.provider.AESCipher$General是的有效子类javax.crypto.CipherSpi,那么您正在处理类路径上的重复类-但是会得到它们。

compileInclude是一个不错的选择,因为它可以在类路径上包含比您想要的更多的代码,即,复制本应通过常规类加载机制生成的类。

不幸的是,此错误消息没有告诉您的是加载每个提到的类的类加载器。而且很可能是超类重复了。您通常可以将错误消息读取为

com.sun.crypto.provider.AESCipher$General无法javax.crypto.CipherSpi从类加载器A强制转换为加载-但是,可以javax.crypto.CipherSpi从类加载器B 强制转换为强制。

不幸的是,在这种情况下,您将不得不自己找到类加载器A和B,但是如果您CipherSpi在类路径上查找任何位置,则应该可以找到它。通常已经提供了它,您不应该自己带它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

javax.crypto.BadPaddingException:解密错误使用Java RSA加密时,

javax.crypto.BadPaddingException

javax.crypto.Cipher有多安全?

crypto / ssh ParsePublicKey“短读”错误

javax.crypto.BadPaddingException:解密错误

pip安装m2crypto错误

javax.crypto.BadPaddingException:当我尝试使用私钥解密RSA字符串时发生解密错误

Web Crypto API无法导入openssl密钥

错误:尝试导入节点标准库模块“ crypto”。失败了

RSA解密期间的javax.crypto.BadPaddingException

TypeError:crypto()之后无法调用decrypt()

javax.crypto.BadPaddingException:给定最终块未正确填充-奇怪的错误

将crypto hmac转换为crypto-js hmac字符串

crypto-js输出与节点crypto不同

无法将外部Windows Crypto API调用从C#转换为F#

使用NodeJs Crypto将Java加密转换为Javascript

Java RSA实现:javax.crypto.BadPaddingException

解密RSA数据Java时出错:javax.crypto.BadPaddingException:解密错误

生成iv时crypto.createDecipheriv错误

设置crypto ++

解密时出现错误javax.crypto.IllegalBlockSizeException:

CWWKE0018E:启动运行时环境时发生异常:java.lang.NoClassDefFoundError:com.ibm.crypto.hdwrCCA.provider.IBMJCECCA

AES加密期间出现javax.crypto.BadPaddingException错误

无法使用Crypto-Js解密消息

测试node.crypto函数时,mocha抛出错误

我如何解决此错误线程“主”中的异常java.lang.NoClassDefFoundError:javax / crypto / SecretKey

解密时出现 javax.crypto.IllegalBlockSizeException

无法在 Crypto.com API C# REST API 上进行身份验证

Webpack 错误 - 无法解析 Vue.js 中的“crypto”、“http”和“https”