编程语言
首页 > 编程语言> > Java / JCE:解密用RSA加密的“长”消息

Java / JCE:解密用RSA加密的“长”消息

作者:互联网

我有一个包含在byte []中的消息,用“RSA / ECB / PKCS1Padding”加密.为了解密它,我创建了一个Cipher c并启动它

c = Cipher.getInstance("RSA/ECB/PKCS1Padding");

直到现在我只使用doFinal()方法解密小消息,返回带有解密字节的byte [].

c.init(Cipher.DECRYPT_MODE, privateKey);
byte[] decryptetBytes = c.doFinal(encryptedBytes);

但在这种情况下,数据更大(大约500字节),并且doFinal() – 方法抛出异常(javax.crypto.IllegalBlockSizeException:数据不得超过128个字节).我想我需要使用update() – 方法,但我无法弄清楚如何让它正常工作.这是怎么做到的?

解决方法:

我认为使用RSA加密除了密钥传输之外的任何东西都是滥用.

为对称密码生成新密钥,并使用该密钥加密批量数据.然后使用RSA加密密钥.将对称加密的密文与非对称加密的内容加密密钥一起发送给收件人.

标签:jce,java,encryption,rsa
来源: https://codeday.me/bug/20190928/1829225.html