JavaWEB使用RSA加密解密数据,项目启动运行几个小时后,加密和解密速度极慢

kangjiwww 2016-04-24 10:22:06
客户端模拟,每30秒发送一次请求,请求数据为RSA加密数据,web端解密数据后返回新的RSA加密数据,项目运行起来开始没啥问题,但运行2个多小时后,web端对于请求进行加密和解密就会变慢,任务管理器中Javaw.exe *32所消耗内存持续增加,经调试,Cipher cipher = Cipher.getInstance("RSA",new org.bouncycastle.jce.provider.BouncyCastleProvider());这段代码随着加密(解密同样)调用次数的增加,所消耗的时间也就越长,直到出现 内存溢出异常
代码来源于网路,核心代码如下,
public static String encryptByPublicKey(String data, RSAPublicKey publicKey)
throws Exception {
Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
Cipher cipher = Cipher.getInstance("RSA",
new org.bouncycastle.jce.provider.BouncyCastleProvider());
cipher.init(Cipher.ENCRYPT_MODE, publicKey);
// 模长
int key_len = publicKey.getModulus().bitLength() / 8;
// 加密数据长度 <= 模长-11
String[] datas = splitString(data, key_len - 11);
String mi = "";
// 如果明文长度大于模长-11则要分组加密
for (String s : datas) {
mi += bcd2Str(cipher.doFinal(s.getBytes()));
}
return mi;
}

...全文
962 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
java-web项目加密运行(支持window/linux)本文来源:张军博客:https://zhangjunbk.com/article/31217
smile13 2017-04-06
  • 打赏
  • 举报
回复
引用 2 楼 qq892618896 的回复:
Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider()); Cipher cipher = Cipher.getInstance("RSA", new org.bouncycastle.jce.provider.BouncyCastleProvider()); 楼主这两段代码考虑换成static变量试试,我对这块不太明白,但我只记得一点,任何变量在new完之后没有及时释放都会占用内存,如果每一个线程都去new一个的话会很浪费内存的,这个cipher应该是类似于httpClient的client客户端吧,考虑一下把他变成在所有线程中都使用一个
按照这个方法可行,亲测无问题。
Intboy 2016-04-25
  • 打赏
  • 举报
回复
piaopiao11 2016-04-25
  • 打赏
  • 举报
回复
jdk不是有 rsa加密解密的吗? 为啥还用第三方的?
  • 打赏
  • 举报
回复
Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider()); Cipher cipher = Cipher.getInstance("RSA", new org.bouncycastle.jce.provider.BouncyCastleProvider()); 楼主这两段代码考虑换成static变量试试,我对这块不太明白,但我只记得一点,任何变量在new完之后没有及时释放都会占用内存,如果每一个线程都去new一个的话会很浪费内存的,这个cipher应该是类似于httpClient的client客户端吧,考虑一下把他变成在所有线程中都使用一个
kangjiwww 2016-04-24
  • 打赏
  • 举报
回复
Exception in thread "ajp-bio-8009-AsyncTimeout" java.lang.OutOfMemoryError: Java heap space

81,115

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧