openssl rsa 使用

openssl生成私钥:

openssl genrsa -out rsa_private_key.pem 1024

基于私钥生成公钥:

openssl rsa -in rsa_private_key.pem -out rsa_public_key.pem -pubout writing RSA key

1、openssl默认生成私钥为pkcs#1格式,java直接使用会报错(但可被openssl使用,如php可使用openssl函数)

java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException:

IOException : algid parse error, not a sequence

2、java需要使用需要新增以下代码,即可使用pkcs#1格式

RSAPrivateKeyStructure asn1PrivKey = new RSAPrivateKeyStructure((ASN1Sequence) ASN1Sequence.fromByteArray(priKeyData));

RSAPrivateKeySpec rsaPrivKeySpec = new RSAPrivateKeySpec(asn1PrivKey.getModulus(), asn1PrivKey.getPrivateExponent());

KeyFactory keyFactory= KeyFactory.getInstance("RSA");

PrivateKey priKey= keyFactory.generatePrivate(rsaPrivKeySpec);

3、pkcs#1格式转换为pkcs#8格式,则java可以正常使用

openssl pkcs8 -topk8 -in rsa_private_key.pem -out pkcs8_rsa_private_key.pem -nocrypt

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容