golang 公钥转 pem_Linux专题—openssl生成公钥和私钥 - Go语言中文社区

golang 公钥转 pem_Linux专题—openssl生成公钥和私钥


1. 无加密格式

1.1 产生私钥(无加密)

$openssl genrsa -out rsa_private_key.pem 1024

425dec3bef44afc97d4da687f9d68c77.png

1.2 产生公钥(无加密)

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

e7974bbebc6b4b56d2370857da34bc56.png

2. 加密方式

2.1 生成RSA私钥(使用aes256加密)

$openssl genrsa -aes256 -passout pass:111111 -out rsa_aes_private.key 2048

其中,passout代替shell进行密码输入,否则会提示输入密码

生成加密后的内容如下:

[root@t31 zhangjx]# cat rsa_aes_private.key 
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-256-CBC,64CADCE4A7460270498F475E3D207A32

Ri+pnxsnelFfiUWOg/5x/V78wv4zWEBfixv+XwPaPXm4txLyhQQ+hWDbzS/mXmrP
Lg27M+U99ZD7XIMa+t0aouLsvnsVcogCaHsL9SsIM0IDRFYMv1lYazOpGyjnqEZM
BK0za5XeNbsrstwzWDRwXOETlRHd1hgF5QI3KVnZE3ms9JIbwcg2QmYDpZNQ3ete
2dVdoKzqRZRxhtNVdEo4V9eyLWFsX+PLxdaQf+9u5SmoJLrRQJZcc9smvwmvZ56M
Ymkcgbl61HFjRO2MBX3ehVUSYFzV3ePZ/F787oLTyL+daKDTYR3JK/e02hRbiQgL
RqltUR1K97JfM/aBlmEI7QDzoWOIoVd7hF2iOXdFBdzRBsYHhYfL2y3cYlx2p56k
ePiNDvIL9oDC6pN2cnGfYbiSsAa3Y/7EJ//6jzhOtyWQKkshy7pYlIKUhly2I4S2
41KTriEMmyvn2O911oHlUGLOGvtbyZ++IaEvIgE3oy9cn0Ootc5+KveVQtsiR3uZ
3gwql+OLlUiUWPmk5uPtwEvllXYahYNDITKXDLb8A6hTU9bZ8AJ4/aMtXDPDYwgQ
PE35yfFVbECSAoVWAkRqsb52H4JA4weeasNJL3E9vGCh5oHb0KlxYN/z6wL55VRl
kdrDw5fV7C8w0ynwedRCcNZm9sVyJrMZIPex2Sr64hGqI9nfGeCodiiyMC2RxW0P
+gp9C0ffushQVFxIA8uEs6Gm+R32jZ2w68ulTyiZ5SzuDbb+FsWrhvesZ7pmgv/H
Jy57BOiby6Dl2O4Bbt+oEVqNAssiqYYDGqeo1du32A9TYLost9sYSVe3jvpWiZH9
6xlOdmsXEbXBLvY4PFsdcFNk6bdLjftTWGUtD4IJFODoOnlIUJTPP+NlOGs1K9ur
OsW8i0KbyEnOeku+mpEW39mHYGsSO7ji0eWBk38nLYInzqSuDKlG9lhYol2xGL6G
1f/humtjortRXJMbN1JbVWd4vakqjhtGiqW2c13LvPKA62ASqU73nHVbRMI3TZPA
PpWffyivrGPCF0BdPEad1Q6tNxA37Z70vj2JNRAcc63G5XsZYEdqOvWKW18G9ygH
SHxBvliZf4fkuS4w/PbBznAXedYQ2uZ88uIefhr8hsWGLHnuotZSXSYS5FiKcjJY
VkaXHJC8L00x22qCUNtItfhMjYQOoxqeDlb9VG5kB9jY1BCX2J4NxxIF+52MgCk5
ve1BOEOk5M2BxwRyMS0yYAp40I0NOypjBVy7Bvxf2KU7+/f2cDtbiVOmhIygr8y7
hXNTmouhOEDvLtk+lwnbB3Ahi4JsvHGWnucLHz2NR8kZ6drGzVR4YrNU8U1yzccq
NdVSVaQMLFpX0wF7C3toXwEsA0+6YjPnwxtIl4KcRDx758U3vbT6nA+gxn/m2CI7
xZN4Pw4KnKofdCoOjmEm3RakU3EgB3FZjpa1d027Usb4b5zYZcm5FDgfokgrsSY9
40/SYDTziLF8PH2DYNeJ2eAs7yT3FU/8mPs7ufjejaF3MdU2KJi/vYPNhjnerl6g
AB3qgDITBbm6vVFtWxySoZ/K0KaKUbn6LeXDFaaBbvyA9r2vKGj7rSmVEngyNUU7
-----END RSA PRIVATE KEY-----

2.2 生成RSA公钥(需要提供密码)

$openssl rsa -in rsa_aes_private.key  -pubout -out rsa_public.key
Enter pass phrase for rsa_aes_private.key:
writing RSA key

第二种非交互的方式

$openssl rsa -in rsa_aes_private.key -passin pass:111111 -pubout -out rsa_public.key
writing RSA key

其中,passin代替shell进行密码输入

生成的公钥内容如下:

[root@t31 zhangjx]# cat rsa_public.key 
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmfIjErk9aB2KetP5487H
ytbFH7rtZe2UdQtGWSUsr9zqBA8TOOfGtLCFF2f3O85pD/RlNwsApYHa3GVnCBab
lUXrm7CpAOv9gPJntn0ZYuLzveuT8igQHJ85uqk4CMptWtmAyC8S0VH8UiTiN3/4
J9QxXW65BYh4/rx76fS0M9yA1+mkNuu7xrqY37fSVQ693lUj2XPlb+4XLN1UHHtX
wIk/SfeMxIHpTGCg8qObyAVg4m//nn0hUi+f9VTdiEa+UcDDfCx/LdNbH8w9oApH
OCK5n00vTVw4MwtGWJ/PQ69L3N76gQNxl8cfTZGHvaslrjiDi52w2+D0KlRS2P/h
JwIDAQAB
-----END PUBLIC KEY-----

3.转换命令

3.1 查看秘钥明细

$openssl rsa -in rsa_private.key -noout -text

3.2私钥转非加密

openssl rsa -in rsa_aes_private.key -passin pass:111111 -out rsa_private.key

3.3 私钥转加密

openssl rsa -in rsa_private.key -aes256 -passout pass:111111 -out rsa_aes_private.key

3.4 私钥PEM转DER

openssl rsa -in rsa_private.key -outform der -out rsa_aes_private.der

-inform和-outform 参数制定输入输出格式,由der转pem格式同理

3.5 查看公钥明细

$openssl rsa -pubin -in  rsa_public_key.pem -noout -text
版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_28976179/article/details/112098920
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-05-16 06:15:50
  • 阅读 ( 763 )
  • 分类:Go

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢