rsa对消息列表的解密速度很慢

chy5wohz  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(628)

我有一个聊天软件,我用rsa算法加密聊天信息。
聊天时一切正常。但问题是当应用程序启动时,一些用户的消息列表就会被加载。这里很慢。
用户数:30-40
每个用户的消息数:40
我有两个嵌套循环
迭代用户的第一个循环
为每个用户迭代消息的第二个循环
我只是在嵌套循环中解密消息,但是加载非常慢。
为所有用户加载消息几乎需要20-25秒。我也尝试过混合加密(rsa+aes),但是速度非常慢,因为我在aes中用新的密钥加密每条消息,然后用公钥加密每条密钥。
有改进的建议吗?

aes密钥生成

SecureRandom rnd = new SecureRandom();
byte [] key = new byte [16];
rnd.nextBytes(key);
this.secretKey = new SecretKeySpec(key, algorithm);
this.cipher.init(Cipher.ENCRYPT_MODE, this.secretKey);
this.cipher.doFinal(input)

rsa密钥生成

this.keyGen = KeyPairGenerator.getInstance("RSA");
 this.keyGen.initialize(1024);
 this.pair = this.keyGen.generateKeyPair();
 this.privateKey = this.pair.getPrivate();
 this.publicKey = this.pair.getPublic();
8fsztsew

8fsztsew1#

或者对多个消息使用相同的对称密钥,或者使用比rsa更快的算法进行解密,例如ecies。您还可以查看是否有更快的rsa&aes本地实现。

相关问题