前言:
常用的rsa
密鑰有兩種格式,一種爲pkcs1
,首尾分別爲:
# 公鑰
-----BEGIN RSA PUBLIC KEY-----
-----END RSA PUBLIC KEY-----
# 私鑰
-----BEGIN RSA PRIVATE KEY-----
-----END RSA PRIVATE KEY-----
另一種爲pkcs8
,首位分別爲:
# 公鑰
-----BEGIN PUBLIC KEY-----
-----END PUBLIC KEY-----
# 私鑰
-----BEGIN PRIVATE KEY-----
-----END PRIVATE KEY-----
openssl工具生成的公/私鑰均爲pkcs1
格式,而接口請求數據加密用的rsa庫
使用的格式爲pkcs8
格式,於是pkcs1
格式公私鑰鑰與pkcs8
格式公私鑰的轉換成爲必須要解決的問題。
一、工具下載安裝:
http://slproweb.com/products/Win32OpenSSL.html
選擇適合自己系統的版本:
二、生成步驟:
1、生成私鑰(pkcs1格式):
genrsa -out rsa_private_key.pem 1024
輸入命令,回車,發現在bin目錄下多了一個rsa_private_key.pem
文件
2、生成公鑰(pkcs1格式):
rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
輸入命令,回車,發現在bin目錄下多了一個rsa_public_key.pem
文件
3、pkcs1 私鑰 轉換成 pkcs8 格式:
pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform pem -nocrypt -out rsa_private_key_pkcs8.pem
輸入命令,回車,發現在bin目錄下多了一個rsa_private_key_pkcs8.pem
文件
4、從 pkcs8 私鑰生成 pkcs8 公鑰:
rsa -in rsa_private_key_pkcs8.pem -pubout -out rsa_public_key_pkcs8.pem
輸入命令,回車,發現在bin目錄下多了一個rsa_public_key_pkcs8.pem
文件
用記事本打開.pem
文件,內容分別爲所需格式的公私鑰。