-
java在aix中无法使用私钥加密0
使用JCE的东西进行rsa加密,在windows和linux均没问题。但是在aix中使用ibm的jdk的时候不允许用私钥进行加密(部署在weblogic上)。
请问大神应当怎么解决?
这是weblogic日志的错误信息。java.security.InvalidKeyException: Private key cannot be used to encrypt. at com.ibm.crypto.provider.RSA.engineInit(Unknown Source) at javax.crypto.Cipher.a(Unknown Source) at javax.crypto.Cipher.a(Unknown Source) at javax.crypto.Cipher.init(Unknown Source) at javax.crypto.Cipher.init(Unknown Source) at com.computech.bankcore.common.rsa.RsaMessage.encrypt(RsaMessage.java:120) at com.computech.bankcore.common.rsa.RsaMessage.encodeTag(RsaMessage.java:375) at com.computech.bankcore.common.rsa.RsaMessage.setMac(RsaMessage.java:956) at com.computech.bankcore.common.webservice.TradingInterface.sendPackage(TradingInterface.java:753) at com.computech.bankcore.common.dorado.viewmodel.ParamQueryViewViewModel.getParam(ParamQueryViewViewModel.java:125) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:615) at com.bstek.dorado.view.ViewModelSupport.handleUpdate(ViewModelSupport.java:938) at com.bstek.dorado.view.rpc.UpdateDataRPCHandler.internalExecute(UpdateDataRPCHandler.java:115) at com.bstek.dorado.view.rpc.AbstractRPCHandler.execute(AbstractRPCHandler.java:118) at com.bstek.dorado.view.smartweb.v2.ViewServiceController.doRPC(ViewServiceController.java:450) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:615) at com.bstek.dorado.action.Controller.doDispatch(Controller.java:225) at com.bstek.dorado.action.Controller.internalDispatch(Controller.java:176) at com.bstek.dorado.action.Controller.internalDispatch(Controller.java:146) at com.bstek.dorado.action.Controller.invokeAction(Controller.java:119) at com.bstek.dorado.action.ActionHandler.invokeAction(ActionHandler.java:137) at com.bstek.dorado.action.ActionHandler.invokeAction(ActionHandler.java:127) at com.bstek.dorado.core.DoradoServlet.doGet(DoradoServlet.java:79) at com.bstek.dorado.core.DoradoServlet.doPost(DoradoServlet.java:101) at javax.servlet.http.HttpServlet.service(HttpServlet.java:763) at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42) at com.computech.common.filter.TimeZoneFilter.doFilter(TimeZoneFilter.java:39) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42) at com.bstek.dorado.core.FilterHandle.internalDoFilter(FilterHandle.java:345) at com.bstek.dorado.core.FilterHandle.doRPCFilter(FilterHandle.java:238) at com.bstek.dorado.core.FilterHandle.doFilter(FilterHandle.java:154) at com.bstek.dorado.core.DoradoFilter.doFilter(DoradoFilter.java:69) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42) at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42) at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42) at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42) at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3229) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121) at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2002) at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1908) at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1362) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209) at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
这是使用的加密方法。public byte[] encrypt(byte[] message, Key key) throws Exception { Cipher cipher = Cipher.getInstance("RSA"); cipher.init(Cipher.ENCRYPT_MODE, key); return cipher.doFinal(message); }
2013年1月08日 18:18
2个答案 按时间排序 按投票排序
-
补充下jar报名字:xmlsec
mvn工程引入
<dependency> <groupId>xml-security</groupId> <artifactId>xmlsec</artifactId> <version>1.3.0</version> <type>jar</type> </dependency> <dependency> <groupId>xalan</groupId> <artifactId>xalan</artifactId> <version>2.7.1</version> <type>jar</type> </dependency>
貌似需要这两个包,记不清楚,时间长了!2013年1月09日 02:23
相关推荐
Java中实现公钥和私钥加密解密主要依赖于Java Cryptography Extension (JCE) 提供的API,特别是`java.security`和`javax.crypto`这两个包。以下是关键类和接口: 1. KeyPairGenerator:用于生成公钥和私钥对。 2. ...
Java 中使用公钥加密私钥解密原理实现 License 控制是指在 Java 应用程序中使用公钥加密、私钥解密机制来实现 License 文件的控制。这种机制可以用来限制系统的使用,例如限制试用期、限制用户数量、限制 IP 地址等...
在Java中实现RSA公钥加密,你需要先生成一对公钥和私钥。这个过程通常通过Java的`java.security.KeyPairGenerator`类来完成,指定`"RSA"`作为算法。生成的公钥可以安全地分享给其他人,而私钥必须保密。在示例中,...
总的来说,这个项目展示了如何在C#中使用`System.Numerics.BigInteger`实现RSA加密算法,同时提供了私钥加密和公钥解密的功能,确保了数据的安全性。为了实际应用,你需要理解并掌握RSA算法的原理,以及如何在.NET...
本教程主要讲解如何在C# .NET环境中使用RSA进行公钥加密和私钥解密,以及私钥加密和公钥解密的操作。 首先,让我们了解RSA的基本原理。RSA算法基于两个大素数的乘积,这个乘积作为公钥,而这两个大素数作为私钥。...
能够生成公钥私钥,直观看到(e,n)和(d,n),能够进行文本及文件加密解密(相关函数输入输出均为byte[],非常好用),最大特点是能够使用私钥加密(.net中处于防止不当私钥加密泄露私钥的问题,好像只提供签名,即...
Java签名私钥加密和公钥...在理解了这些基本概念后,开发者可以在Java应用程序中实现安全的私钥加密和公钥解密功能,以保护数据的安全并验证消息的来源。这在诸如网络通信、文件传输、数字证书等领域都有着广泛的应用。
在JAVA中,可以使用`java.security`和`javax.crypto`包来实现RSA加密和解密。首先,你需要生成KeyPair,然后使用Private和Public Key进行操作。 在C#中,可以利用`System.Security.Cryptography....
在"RSA加密测试,私钥加密,公钥解密"的场景中,我们将探讨如何使用私钥对数据进行加密,然后用公钥进行解密,以确保数据在传输过程中的安全。 私钥加密通常用于数字签名,因为它能证明数据是由特定的实体创建或...
在给定的"RSA.zip"压缩包中,可能包含了C++代码示例,用于演示如何使用RSA算法进行加密和解密操作,以及如何生成和管理公钥私钥对。文件名"RSA"可能是源代码文件或执行程序。通过学习和理解这些代码,开发者可以更好...
文件"RSATest"可能是测试代码或数据,它可能包含了实现上述流程的示例代码,用于验证RSA加密在不同环境下的互通性。 总之,理解并熟练运用RSA加密技术,以及了解如何在不同编程语言之间实现互通,对于开发安全的...
这样的设计确保了数据在传输过程中即使被截获,也无法被未经授权的人轻易解密,因为只有拥有匹配的公钥的接收方才能解密由私钥加密的数据。 私钥是保密的,通常只保存在发送方或拥有者手中,而公钥可以公开分享。...
非对称加密算法在数字证书和公钥私钥加密原理中起着核心作用,其中最著名的算法之一是RSA算法。RSA算法的安全性基于大数分解的数学难题,即给定两个大素数,要分解得到这两个数是相当困难的。公钥和私钥的生成过程...
在.NET环境下,我们可以使用内置的System.Security.Cryptography命名空间中的类来实现RSA加密和解密。 首先,让我们深入了解一下RSA的工作原理。RSA的核心是两个密钥:公钥和私钥。公钥可以公开,任何人都可以获取...
总的来说,这个压缩包提供的代码实例展示了如何在Java中利用RSA公钥/私钥加密技术来保护敏感信息的安全。这在实际应用中,比如HTTPS通信、数字签名、数据存储等场景都非常重要。通过学习和理解这些代码,开发者可以...
- 在实际应用中,通常使用公钥加密数据,私钥解密,确保数据的安全传输。 这个项目的源码可能包含了这些操作的实现,通过分析源码,你可以了解到如何在实际项目中应用RSA加密解密。注意,文件列表中的[Content_...
在Java中,可以使用`java.security.KeyPairGenerator`生成密钥对,`Cipher`类进行加密和解密操作。在Android中,由于存在默认的安全限制,可能需要配置`android.security.keystore`系统服务来存储和使用密钥。 6. *...
以上就是关于C#中使用RSA算法进行私钥加密和公钥解密的基本概念和实践步骤。通过这个过程,我们可以实现安全的数据交换,保障信息不被未经授权的第三方访问。在实际项目中,这些知识可以应用于如HTTPS通信、数据存储...
这个压缩包中的内容看起来是针对C#环境的一个RSA工具包,能够处理Java格式的公钥和私钥,这在跨平台的系统交互中非常有用。 1. **RSA算法原理**:RSA基于大整数因子分解的困难性,由Ron Rivest、Adi Shamir和...
这在某些应用场景中可能是必要的,比如在分布式系统中,每个节点都有自己的公钥,可以通过其他节点的私钥加密消息,然后用公钥解密,确保消息只能被预期的接收者读取。 6. **错误处理**:在实际操作中,gorsa库会...