admin管理员组

文章数量:1531695

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

  • 生成RSA密钥
      • 生成RSA私钥
      • 生成RSA公钥
      • 将RSA私钥转换成 PKCS8 格式
  • 生成DSA密钥
      • 生成DSA参数
      • 生成DSA私钥
      • 生成DSA公钥
      • 将DSA私钥转换成 PKCS8 格式

如果你的机器上还没有编译安装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

本文标签: 密钥WindowsOpenSSLDSARSA