使用OpenSSL生成和转换RSA密钥

OpenSSL下载:http://www.openssl.org/source/

使用OpenSSL生成私钥

进入cmd窗口,进到OpenSSL的目录,输入命令:

openssl.exe genrsa -out rsa_private_key.pem 1024
密钥使用1024位长度,如果需要更高安全要求,可以使用2048位,当然服务器计算资源也会消耗更多。
默认的原始私钥可以给php、c#、ruby等语言使用。

生成的内容如下:

-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQC/W3UGzlPkfqGoRCSOH/HOCqDmDkerltf+JAQt64E4sZ4hkEhz
xvImcuwoN4K0pPzSoLVNBdBNAntZCwuWRKS24XvXmV0LRekwKtqFIlsleL/gDF6a
wu79Rk35mT+kni/YN9iesAHlsVfyrAQPrDdViDQTBIIbK5B49qCmQOhkrQIDAQAB
AoGADDL2aPKqYny4LZP6iJz8u1fuHfx3ETdSmb8ODSdgW47nN9iM5eSe91iIOaAg
UwfZnkvkgv6F4wLvfiO4H2JM5cd/BezIJPhFAkqZoB2BXkN7sPxUDGbIUI2p1Skw
WbEufdOku2P0ALK8RTb3QJ5moBzsM8Gd4g9b88oQIOdESsECQQDr8pW1BQH+iaAZ
DvPnbofmbhaDQ2+vEm/0sMsIOATrPu3JSQNMMMl5PxMgJKf0+dvPzyhS8Xum2IeR
hApGAQ6VAkEAz569EDYbJS8fWbw0g/5mINgR1j9GWsWtLqofECQALAGFMzbR4ZY/
d6O4vvIuI9zgkIwXEQ0HHeavdsN1ajmvuQJACbTJA9FY66ettlovHm4lmQ0eT/gO
OB2CDYbYU1Y6nZLRJV6jjBbVsu8tUj0vy5wbtsjG1+KnO43cxdewtICGoQJBAI+y
TyqcOBd5UNp7v2Envym2QkolyxziOiXVCuDR+eh7OOSkaYkXw1+byi8mUTbzFd4V
h5V+jdFtKz4os+hMeskCQDm823oEInKWXF3etDTMbL6mzmN0SRfrx8HZ3gbRg/Cl
bpUMbek0pWBcyKY6bz5XSdyxvCTPwRMkx4HZcKdaw98=
-----END RSA PRIVATE KEY-----
通过私钥生成公钥:

openssl.exe rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
生成的公钥通常需要上传给与之通信的对方网站使用。生成的是pem格式的文件,当往往只提供了文本输入框提交上传,所以需要将文本格式中的内容拿出来,删除头尾和多余的换行。

生成的公钥:

-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC/W3UGzlPkfqGoRCSOH/HOCqDm
Dkerltf+JAQt64E4sZ4hkEhzxvImcuwoN4K0pPzSoLVNBdBNAntZCwuWRKS24XvX
mV0LRekwKtqFIlsleL/gDF6awu79Rk35mT+kni/YN9iesAHlsVfyrAQPrDdViDQT
BIIbK5B49qCmQOhkrQIDAQAB
-----END PUBLIC KEY-----

转换一行后的效果:


MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC/W3UGzlPkfqGoRCSOH/HOCqDmDkerltf+JAQt64E4sZ4hkEhzxvImcuwoN4K0pPzSoLVNBdBNAntZCwuWRKS24XvXmV0LRekwKtqFIlsleL/gDF6awu79Rk35mT+kni/YN9iesAHlsVfyrAQPrDdViDQTBIIbK5B49qCmQOhkrQIDAQAB
将私钥转换为PKCS8格式

openssl.exe pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt -out rsa_private_key_pkcs8.pem
pkcs8格式的私钥主要给java语言使用。

转换的pkcs8格式私钥:

-----BEGIN PRIVATE KEY-----
MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAL9bdQbOU+R+oahE
JI4f8c4KoOYOR6uW1/4kBC3rgTixniGQSHPG8iZy7Cg3grSk/NKgtU0F0E0Ce1kL
C5ZEpLbhe9eZXQtF6TAq2oUiWyV4v+AMXprC7v1GTfmZP6SeL9g32J6wAeWxV/Ks
BA+sN1WINBMEghsrkHj2oKZA6GStAgMBAAECgYAMMvZo8qpifLgtk/qInPy7V+4d
/HcRN1KZvw4NJ2Bbjuc32Izl5J73WIg5oCBTB9meS+SC/oXjAu9+I7gfYkzlx38F
7Mgk+EUCSpmgHYFeQ3uw/FQMZshQjanVKTBZsS5906S7Y/QAsrxFNvdAnmagHOwz
wZ3iD1vzyhAg50RKwQJBAOvylbUFAf6JoBkO8+duh+ZuFoNDb68Sb/Swywg4BOs+
7clJA0wwyXk/EyAkp/T528/PKFLxe6bYh5GECkYBDpUCQQDPnr0QNhslLx9ZvDSD
/mYg2BHWP0Zaxa0uqh8QJAAsAYUzNtHhlj93o7i+8i4j3OCQjBcRDQcd5q92w3Vq
Oa+5AkAJtMkD0Vjrp622Wi8ebiWZDR5P+A44HYINhthTVjqdktElXqOMFtWy7y1S
PS/LnBu2yMbX4qc7jdzF17C0gIahAkEAj7JPKpw4F3lQ2nu/YSe/KbZCSiXLHOI6
JdUK4NH56Hs45KRpiRfDX5vKLyZRNvMV3hWHlX6N0W0rPiiz6Ex6yQJAObzbegQi
cpZcXd60NMxsvqbOY3RJF+vHwdneBtGD8KVulQxt6TSlYFzIpjpvPldJ3LG8JM/B
EyTHgdlwp1rD3w==
-----END PRIVATE KEY-----
将pkcs8格式私钥还原

openssl.exe pkcs8 -inform PEM -in rsa_private_key_pkcs8.pem -outform PEM -out rsa_p.pem -nocrypt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值