问题描述:
在使用Java原生API进行RSA私钥加载的时候,报错如下:
java.security.InvalidKeyException: IOException : algid parse error, not a sequence
原因分析:
通常JAVA中使用的RSA私钥格式必须为PKCS8格式,而我使用的私钥是PKCS1格式。
解决方案一,格式转换:
1,使用openssl进行格式转换,嫌麻烦我没有采用。
2,使用BouncyCastle 提供的api进行转换,详见这位老哥的博客,地址
3,使用在线工具转换(推荐),点击进入
解决方案二,使用BouncyCastle
1,如果是使用Gladle构建,那么添加BouncyCastle的依赖。
implementation group: 'org.bouncycastle', name: 'bcprov-jdk15on', version: '1.65'
注意,版本不要太高了,高版本需要jdk11或者更高版本jdk的支持。
2,下载jar包进行第三方库的使用,下载页面
3,可以使用BouncyCastle提供的API进行PKCS1格式私钥的加载
//私钥解密
public static byte[] privateDecryptByBouncyCastle(byte[] content,