java 处理rsa证书的问题

[复制链接]
查看11 | 回复2 | 2021-1-27 06:48:26 | 显示全部楼层 |阅读模式
今天做一个认证的功能时,出现了一个问题,加载RSA的证书报错。
证书生成命令:
opensslgenrsa-aes256-outserver-key.pem1024
加密密码:12345678
java代码:
Security.addProvider(newBouncyCastleProvider());
PEMReaderreader=newPEMReader(newInputStreamReader(newFileInputStream(newFile("C:\\Users\\cwown\\Desktop\\server-key.pem"))),newPasswordFinder(){
@Override
publicchar[]getPassword(){
return"12345678".toCharArray();
}
});
KeyPairkeyPair=(KeyPair)reader.readObject();
System.out.println(keyPair.getPrivate());
错误信息:
Exceptioninthread"main"org.bouncycastle.openssl.EncryptionException:exceptionusingcipher-pleasecheckpasswordanddata.
atorg.bouncycastle.openssl.PEMUtilities.crypt(UnknownSource)
atorg.bouncycastle.openssl.PEMUtilities.crypt(UnknownSource)
atorg.bouncycastle.openssl.PEMReader$KeyPairParser.readKeyPair(UnknownSource)
atorg.bouncycastle.openssl.PEMReader$RSAKeyPairParser.parseObject(UnknownSource)
atorg.bouncycastle.openssl.PEMReader.readObject(UnknownSource)
atRSATest.main(RSATest.java:31)
Causedby:java.security.InvalidKeyException:Illegalkeysize
atjavax.crypto.Cipher.a(DashoA13*..)
atjavax.crypto.Cipher.init(DashoA13*..)
atjavax.crypto.Cipher.init(DashoA13*..)
...6more
看提示是密码错误,但是证书生成时的密码确实时12345678。
生成证书时加密选择des3是正常的,有没有大佬指点下为啥AES就不行。

分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:48:26 | 显示全部楼层
keysize不对。你的OpenSSL的参数1024等是不是不够,需要2048
回复

使用道具 举报

千问 | 2021-1-27 06:48:26 | 显示全部楼层
已经解决了,jdk默认不支持AES256位,替换了jdk里面的受限的jar就可以了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行