java rsa jce限制_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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值