利用Cipher实现rsa的效率问题

ouanui 2008-07-22 09:19:32
小弟最近在处理一个rsa加密的问题,采用的是jdk自带的类库:
javax.crypto.Cipher,

公钥和密钥的生成使用的是:
java.security.KeyPairGenerator,
java.security.Key,
java.security.KeyPair,

在获得cipher时候采用的provider是
org.bouncycastle.jce.provider.BouncyCastleProvider,

加密的这段代码看起来很简单:
public static byte[] decrypt(Key key, byte[] raw) throws IllegalBlockSizeException, BadPaddingException, IOException, InvalidKeyException,
NoSuchAlgorithmException, NoSuchPaddingException
{
Cipher cipher = Cipher.getInstance("RSA", new org.bouncycastle.jce.provider.BouncyCastleProvider());
cipher.init(Cipher.DECRYPT_MODE, key);

int blockSize = cipher.getBlockSize();
ByteArrayOutputStream bout = new ByteArrayOutputStream(64);

for (int j = 0; raw.length - j * blockSize > 0; j++)
{
bout.write(cipher.doFinal(raw, j * blockSize, blockSize));
}
return bout.toByteArray();
}

key_size=2048
这样实现,确实可以对数据分块加密,但效率很底,加密一个大小为1K的文件,需要2秒多的时间,有点令人难以接受,不知道这里是否有人和我有同样的经历。我想提高下效率,不知道有什么可用的方法,希望能得到大家的指点,谢谢!
...全文
344 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ouanui 2008-07-23
  • 打赏
  • 举报
回复
这里的人气好象没有其他板块的高啊,
不用org.bouncycastle.jce.provider.BouncyCastleProvider,
对10k以下的文件,先分解在加密貌似比之前快了那么一点点,
但对更大的文件就没这么幸运了

希望有更优的方法
ouanui 2008-07-22
  • 打赏
  • 举报
回复
谢谢,这个帖子好象防错地方了,好象该防到安全专题的
havelock 2008-07-22
  • 打赏
  • 举报
回复
友情帮顶.没碰到过.

不过加密似乎一直都比较慢.想提高效率的话可以自己实现加密算法试试.

50,531

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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