通過openssl工具生成RSA的公鑰和私鑰(opnssl工具可在互聯網中下載到,也可以點此下載無線接口包,里面包含此工具)打開openssl文件夾下的bin文件夾,執行openssl.exe文件:
1)生成RSA私鑰
輸入“生成命令.txt”文件中:“genrsa -out rsa_private_key.pem 1024”,並回車得到生成成功的結果,如下圖:
此時,我們可以在bin文件夾中看到一個文件名為rsa_private_key.pem的文件,用記事本方式打開它,可以看到-----BEGIN RSA PRIVATE KEY-----開頭,-----END RSA PRIVATE KEY-----結尾的沒有換行的字符串,這個就是原始的私鑰。
2)生成RSA公鑰
輸入命令:rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem,並回車,得到生成成功的結果,如下圖:
此時,我們可以在bin文件夾中看到一個文件名為rsa_public_key.pem的文件,用記事本方式打開它,可以看到-----BEGIN PUBLIC KEY-----開頭,-----END PUBLIC KEY-----結尾的沒有換行的字符串,這個就是公鑰。
3)把RSA私鑰轉換成PKCS8格式
輸入命令:pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt,並回車當前界面中會直接顯示出生成結果,這個結果就是PKCS8格式的私鑰,如下圖:
右鍵點擊openssl窗口上邊邊緣,選擇編輯→標記,選中要復制的文字(如上圖),
此時繼續右鍵點擊openssl窗口上邊邊緣,選擇編輯→復制,
把復制的內容粘土進一個新的記事本中,可隨便命名,只要知道這個是PKCS8格式的私鑰即可。
經過以上步驟,開發者可以在當前文件夾中(OpenSSL運行文件夾),看到dsa_private_key.pem(DSA私鑰)、dsa_private_key_pkcs8.pem(pkcs8格式DSA私鑰)、dsa_public_key.pem(對應DSA公鑰)和dsa_param.pem(參數文件)4個文件。開發者將私鑰保留,將公鑰提交給支付寶網關,用於驗證簽名。
注意:對於使用Java的開發者,將pkcs8在console中輸出的私鑰去除頭尾、換行和空格,作為開發者私鑰,對於.NET和PHP的開發者來說,無需進行pkcs8命令行操作。