Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.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安全类强制转换异常_Java_Security_Rsa_Encryption - Fatal编程技术网

Java安全类强制转换异常

Java安全类强制转换异常,java,security,rsa,encryption,Java,Security,Rsa,Encryption,您好,我是Java安全的初学者,在调用时遇到以下问题: Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding"); 我得到了一个错误: java.lang.ClassCastException:com.sun.crypto.provider.rsaciper无法强制转换为javax.crypto.CipherSpi 我的war文件中还有5个JAR文件用于支付网关加密: cryptix-jce-api.jar cryptix-jce-

您好,我是Java安全的初学者,在调用时遇到以下问题:

Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
我得到了一个错误:

java.lang.ClassCastException:com.sun.crypto.provider.rsaciper无法强制转换为javax.crypto.CipherSpi

我的war文件中还有5个JAR文件用于支付网关加密:

  • cryptix-jce-api.jar
  • cryptix-jce-provider.jar
  • cryptix-message-api.jar
  • cryptix-openpgp-provider.jar
  • cryptix-pki-api.jar
如果没有这5个JAR文件,Cipher.getInstance()就可以工作,但这是不可能的,因为我需要JAR来加密支付信息


任何人都可以告诉我如何克服这个问题?

Powermockito无法增强javax.crypto类,因此您可能需要在类级别添加以下注释:


@PowerMockIgnore(“javax.crypto.*)或@PowerMockIgnore({“javax.crypto”})

谢谢您的评论和回答。
最后,我将5个JAR从WAR文件移到服务器Jars库目录,并解决了这个问题。
中间有一个
java.lang.RuntimeException:NYI

使用以下解决方案解决:
希望这对任何人都有帮助。

再次感谢

在类级别
@PowerMockIgnore(“javax.crypto.*)
@PowerMockIgnore({“javax.crypto”})

添加后,如果显示Jce安全异常
您可以下载此文件并在以下路径中替换本地策略jar文件和美国策略jar文件:

C:\Program Files\Java\jdk1.8.0_151\jre\lib\security

您好@Wilson60,您可能需要检查java和cryptix的版本。cryptix已经死了,而且永远都是。为什么你认为你需要它?嗨,谢谢你的回答,但这个项目是几年前开始的。谢谢所有的评论和回答。最后,我将5个JAR从WAR文件移到服务器Jars库目录,并解决了这个问题。中间有一个java.lang.RuntimeException:NYI。这是用这里的解决方案解决的:希望这对任何人都有帮助。再次感谢@威尔森60:你能不能把这个作为一个答案(然后接受这个答案),所以这个问题被标记为“已解决”?谢谢!这解决了我在加密测试环境中使用PowerMock时的问题