java rsa 128_java – RSA解密错误 – IllegalBlockSizeException:数据不得超过128个字节

在制作RSA消息认证软件过程中遇到错误:使用1024位私钥进行解密时抛出IllegalBlockSizeException,提示数据长度超过128字节。代码中Cipher实例化使用了"RSA/ECB/PKCS1Padding",这可能导致生成2048位的结果。问题可能在于RSA加密的块大小限制。需检查代码以确保加密和解密使用相同参数。
摘要由CSDN通过智能技术生成

我现在正在制作RSA消息认证软件.过程如下:

>使用A的私钥(1024位)对邮件进行签名

>使用A的公钥验证邮件(1024位)

#1代码(如下)工作正常并生成以下结果:

5554c9a9f6838b6cf40d9dbfbab3d90ea27aa6434ed095d289c13c2624617993ad99161ac265276d150510c176341d8ab8600d08b7353286d465e6bd3370a6fd8dd3ffb82916f612fd6dcee5e654ed801cfca6b6d2d5d6dc99ff7921b615abdf62eb67db1f71e6a6ea70012fd35e7cefa1a8d3aab7614c47746cfe1fc2bc875b

但是#2代码显示以下错误:

javax.crypto.IllegalBlockSizeException: Data must not be longer than 128 bytes

我认为#1 Cipher密码中的行= Cipher.getInstance(“RSA / ECB / PKCS1Padding”);

生成2048位(256字节)的结果.也许这就是问题……记住我使用1024位私钥.

那么#1代码如何生成128字节的结果呢?

1. SignMail.java

public class SignMail {

static {

Security.addProvider(new org.spongycastle.jce.provider.BouncyCastleProvider());

}

public static String sign(String userOriginalMessage) throws Exception {

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值