openssl在windows上生成RSA密钥、DSA密钥

本文详细介绍了如何在Windows环境下使用OpenSSL生成RSA和DSA密钥对,包括私钥和公钥的生成,以及将私钥转换为PKCS8格式的方法。文章提供了具体的命令行操作步骤和示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


如果你的机器上还没有编译安装openssl,请参考我的这篇文章 VS2013 编译安装openssl及工程配置用VS2013编译安装。

生成RSA密钥

用管理员身份运行D:\LeoApp\openssl-1.0.2t\openssl_install\bin下的openssl.exe文件
在这里插入图片描述
请注意,如果不用管理员运行,生成过程可能会提示**“unable to write random state”**错误

生成RSA私钥

genrsa -out rsa_private_key.pem 1024

在这里插入图片描述
在文件夹中就生成了pem格式的RSA私钥文件rsa_private_key.pem
使用文本编辑器打开,内容如下:

-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQCtAAxhs5v9bHbleQz7ZgDkghcypVP8zK56giKp4KS+tYS0sgdY
Ui5jzykp05qFEQleE8VdN86wPdEFaDp1wZ19MbS7vbDCAwAC5yvgRYOcMlPQLLmQ
VZv9elT9lBrZ3KujHXDl4p/lQYuGeJcthvoAY5aa+U+JmoRYzXT8b7v/kQIDAQAB
AoGBAJfVtgg96gd3HbbzEijG8rubTZ7eqaLzRaMx+hhcmFrk1077/SRQJHTnCbqz
BCgLtswB0DOrWlUmPABh5QUa5AvemhqLBJh7JWfPq0VyXuRA4lmpUw3IQbFNFa9V
ErytP5h3LIs3eukh/zeC9fB4aZUFMtRzXCc43hVVjiKVws2NAkEA1KJpkHImfrVc
orYI61DcqsLjt4nhp3uR2OW7QLTiOWwhmANvYNuBSbKlQ003az2WRTqqFom76oB9
vTofIJxmqwJBANBIV85r9TsRss8l9+gIIB2B8vYw790iAuSoeJS3bf7MPi7eyhhv
rXMd49sEirT0ptTkXY/wHRw6ZMvlbZw4orMCQG4hkLuX5AhMtyYvUn9O6nwnZPpz
F8U/Y1ML6eihx2omb1/kp5NrHZOmS6KII+QPif1hXSc/P20+D+IqcGTbnPECQQDL
KnX0FZydJNNtepTKUfq5rcOIYA3pfz6hOrB8KDz0ONhDMfCiS3U+gB59yn1eq/J8
YdHeEJLksRUXStFTfG8/AkA47JlIeMEzquPZG56VVMQy0TWDPmUE5eUERLXCnZco
MTfL5vP1Wg0U6zExdafC3EVbiTc5rqg0FDp0J3I1DQNi
-----END RSA PRIVATE KEY-----

使用时,要把开头的 -----BEGIN RSA PRIVATE KEY----- 和结尾的 -----END RSA PRIVATE KEY----- 去掉。

生成RSA公钥

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

在这里插入图片描述
同样的,使用时要把开头的 -----BEGIN PUBLIC KEY----- 和结尾的
-----END PUBLIC KEY---- 去掉。

将RSA私钥转换成 PKCS8 格式

pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt -out rsa_private_key_pkcs8.pem

在这里插入图片描述
如果上述生成命令不添加-out rsa_private_key_pkcs8.pem,则转换后的内容直接打印出来,如下图所示:
在这里插入图片描述

生成DSA密钥

生成DSA参数

dsaparam -out dsa_param.pem 1024

在这里插入图片描述

用记事本打开dsa_param.pem,内容如下:

-----BEGIN DSA PARAMETERS-----
MIIBHgKBgQCsSQ9K/QUaRv/z2LC63f/FeeDDhKiahF1/5T8iRcjxiofZwDblVOrz
efxLABn+CkXNxqQAX+IedFya9pQFe7j/og5gvlrYG4n3XykNnUVylBMYibyEn8Vh
zyWKjWa0K5tCNjy+gcpFtQvRtC94KWutIVf7miibx/AfsC099crk9wIVAJXzEp/S
HvqXS14+svXkHPLsAME/AoGAASIsvrZV+DWAL6nz6LiBm2LRrcwMmWwdSAo/XgWs
uHE2DON1yclI3ODlVxZy/1ymLVAcT876PhsB4b8WsXX525wKsO2tV/niedz7PfwV
f4qNMOS7Z5IY1flh2jIIFhwst0Jqmli3cD51R51xZDEly/V2lcIPQ3y61N1djpUO
bT4=
-----END DSA PARAMETERS-----

生成DSA私钥

gendsa -out dsa_private_key.pem dsa_param.pem

在这里插入图片描述
bang!出现错误!
解决办法就是将这个生成程序重启一下,然后重新生成私钥:
在这里插入图片描述

生成DSA公钥

dsa -in dsa_private_key.pem -pubout -out dsa_public_key.pem

在这里插入图片描述

将DSA私钥转换成 PKCS8 格式

pkcs8 -topk8 -inform PEM -in dsa_private_key.pem -outform PEM -nocrypt -out dsa_private_key_pkcs8.pem

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值