Java安全类强制转换exception
嗨,我是Java安全的初学者,我在调用时遇到以下问题:
Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
我收到了错误:
java.lang.ClassCastException: com.sun.crypto.provider.RSACipher cannot be cast to javax.crypto.CipherSpi
在我的war文件中还有5个用于支付网关加密的jar文件:
- CRYPTIX-JCE-api.jar文件
- CRYPTIX-JCE-provider.jar
- CRYPTIX-消息api.jar文件
- CRYPTIX-的OpenPGP-provider.jar
- CRYPTIX-PKI-api.jar文件
如果没有这5个JAR文件,那么Cipher.getInstance()可以工作,但这是不可能的,因为我需要JAR来进行支付信息加密。
那里的任何人都可以告诉我如何克服这个问题的道路?
Powermockito无法增强javax.crypto类,因此您可以在类级别添加以下注释:
@PowerMockIgnore("javax.crypto.*") or @PowerMockIgnore({"javax.crypto" })
感谢所有的评论和答案。
最后,我将5个Jars从WAR文件移出到服务器Jars库目录并解决了这个问题。
之间有一个java.lang.RuntimeException: NYI
。
它是使用此处的解决方案解决的: http : //javabeanz.wordpress.com/2009/06/11/java-lang-runtimeexception-nyi/
希望这对任何人都有帮助。
再次感谢!
在类级别@PowerMockIgnore("javax.crypto.*")
或@PowerMockIgnore({"javax.crypto" })
添加此项
添加后如果显示Jce安全exception
您可以下载此文件Java Cryptography Extension(JCE)Unlimited Strength Jurisdiction Policy Files 8并在此路径中替换local_policy jar文件和US_policay jar文件:
C:\Program Files\Java\jdk1.8.0_151\jre\lib\security
- JavaBean和Spring bean之间的区别
- 如何在OutOfMemoryError _after_上进行堆转储时重新启动JVM?
- 使用Hibernate将java.util.Date持久化到MySql中的问题
- 如何永久增加java堆内存?
- 原始类型,无界外卡和generics中使用Object之间的区别是什么
- 如何拦截从Java到Groovy的调用 – 或者轻松地模拟它
- DefaultAnnotationHandlerMapping通过ContextLoaderListener而不是Spring 3上的DispatcherServlet
- 考虑AM / PM,计算Java中的日期/时间差
- JFreeChart Scatter Plot Lines