码迷,mamicode.com
首页 > 编程语言 > 详细

Java中使用OpenSSL生成的RSA公私钥进行数据加解密

时间:2018-06-25 22:52:30      阅读:264      评论:0      收藏:0      [点我收藏+]

标签:密钥对   img   class   linux   验证   复杂度   开头   推荐   最大   

当前使用的是Linux系统,已经按装使用OpenSSL软件包,

一、使用OpenSSL来生成私钥和公钥

1、执行命令openssl version -a 验证机器上已经安装openssl 

1
openssl version -a

运行结果:

技术分享图片

2、生成私钥:这条命令让openssl随机生成了一份私钥,加密长度是1024位。加密长度是指理论上最大允许”被加密的信息“长度的限制,也就是明文的长度限制。随着这个参数的增大(比方说2048),允许的明文长度也会增加,但同时也会造成计算复杂度的极速增长。一般推荐的长度就是2048位

1
openssl genrsa -out rsa_private_key.pem 2048

 运行结果:

技术分享图片

生产私钥文件:rsa_private_key.pem,内容都是标准的ASCII字符,开头一行和结尾一行有明显的标记,真正的私钥数据是中间的不规则字符

技术分享图片  

3、根据私钥生产公钥:rsa_public_key.pem

1
openssl rsa -in rsa_private_key.pem -out rsa_public_key.pem -pubout

运行结果:

技术分享图片

公钥内容:

技术分享图片

注意:此时的私钥还不能直接被使用,需要进行PKCS#8编码:

 4、PKCS#8编码:指明输入私钥文件为rsa_private_key.pem,输出私钥文件为pkcs8_rsa_private_key.pem,不采用任何二次加密(-nocrypt)

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

至此:可用的密钥对已经生成好了,私钥使用pkcs8_rsa_private_key.pem,公钥采用rsa_public_key.pem

Java中使用OpenSSL生成的RSA公私钥进行数据加解密

标签:密钥对   img   class   linux   验证   复杂度   开头   推荐   最大   

原文地址:https://www.cnblogs.com/yaowen/p/9226566.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!