我已经能够使用bouncycastle jar在本地运行解密和加密。我已经生成了密钥,我想将公钥作为客户端(Java和Android)和私钥放在Web服务中。我已经能够加密和编码消息并将加密的消息发送到Web服务(由Lunarpages在托管服务上),但是Web服务解密失败并且行上有FileNotFoundException
BouncyCastleProvider bc = new BouncyCastleProvider();
或
Security.addProvider(new BouncyCastleProvider());
bcprov-ext-jdk14-146.jar和bcprov-jdk14-146.jar包含在web-inf lib目录中。
我是否可以通过编程实现这一点,或者Lunarpages必须做些什么?
我甚至无法为我打印堆栈跟踪,所以我想我可能会尝试不同的提供商来查看我是否得到了更好的响应 - SunJCE。
access denied (java.security.SecurityPermission insertProvider.SunJCE)
java.security.AccessControlContext.checkPermission(AccessControlContext.java:269) java.security.AccessController.checkPermission(AccessController.java:401) java.lang.SecurityManager.checkPermission(SecurityManager.java:524) java.lang.SecurityManager.checkSecurityAccess(SecurityManager.java:1673) java.security.Security.check(Security.java:1307) java.security.Security.insertProviderAt(Security.java:697) java.security.Security.addProvider(Security.java:757) net.wpstudios.tcws.pgp.RSAEncrypt.generateKeys(RSAEncrypt.java:81) javax.servlet.http.HttpServlet.service(HttpServlet.java:165) javax.servlet.http.HttpServlet.service(HttpServlet.java:103) com.caucho.server.http.FilterChainServlet.doFilter(FilterChainServlet.java:96) com.caucho.server.http.Invocation.service(Invocation.java:315) com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:135) com.caucho.server.http.RunnerRequest.handleRequest(RunnerRequest.java:346) com.caucho.server.http.RunnerRequest.handleConnection(RunnerRequest.java:274) com.caucho.server.TcpConnection.run(TcpConnection.java:139) java.lang.Thread.run(Thread.java:534)
答案 0 :(得分:1)
FileNotFound异常是否重要?显然,caucho服务器设置在添加提供程序时使用访问限制。没关系,如果你想开发一些应用程序级加密/解密,你可以直接使用bouncy castle crypto API。它不如JCE友好,但它足够可用。如果您想使用一个库,而该库又使用JCA / JCE框架,那么这可能不起作用。
Lunarpages是手动更改权限或添加提供程序(似乎使用resin.conf),但除非您是唯一使用Java应用程序服务器的人,否则可能很难为您更改它们。我猜想,从来没有伤害过。