1.下載php
OpenSSL 官方網站下載 Windows 的 OpenSSL 安裝包 進行安裝。java
我的百度網盤連接:https://pan.baidu.com/s/1jHNs2k2 密碼:08w0linux
linux 安裝 open ssl 命令 sudo apt-get install openssl
c++
2.生成 RSA 私鑰及公鑰shell
2.1 Linux 用戶(以 Ubuntu 爲例)網站
$ openssl # 進入 OpenSSL 程序
ui
OpenSSL> genrsa -out rsa_private_key.pem 1024 # 生成私鑰
加密
OpenSSL> pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt -out rsa_private_key_pkcs8.pem # Java開發者須要將私鑰轉換成 PKCS8 格式 OpenSSL> rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem # 生成公鑰
spa
OpenSSL> exit # 退出 OpenSSL 程序
命令行
2.2 Windows 用戶在 cmd 窗口中進行如下操做:
C:\Users\Hammer>cd C:\OpenSSL-Win32\bin %進入 OpenSSL 安裝目錄%
C:\OpenSSL-Win32\bin>openssl.exe %進入 OpenSSL 程序% 首先找打你所安裝的openssl.exe目錄
OpenSSL> genrsa -out rsa_private_key.pem 1024 %生成私鑰%
OpenSSL> pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt -out rsa_private_key_pkcs8.pem %備註:Java 開發者須要將私鑰轉換成 PKCS8 格式%
OpenSSL> rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem %生成公鑰%
OpenSSL> exit %退出 OpenSSL 程序%
注意:對於使用 Java 和 .NET 的開發者,將 pkcs8 在 console 中輸出的私鑰去除頭行、尾行、回車換行和空格,做爲開發者私鑰,對於 PHP 的開發者來講,無需進行 pkcs8 命令行操做。
通過以上步驟,開發者能夠在當前文件夾中(Windows 用戶在 C:\OpenSSL-Win32\bin)看到 rsa_private_key.pem
和 rsa_public_key.pem
兩個文件,前者爲私鑰,後者爲公鑰。開發者將私鑰保留,將公鑰提交給支付寶網關,用於信息加密及解密。如下爲使用 OpenSSL 生成的私鑰文件和公鑰文件示例。
-----BEGIN RSA PRIVATE KEY----- MIICXgIBAAKBgQD5XhINYn8H846imTJVTtUTJUTSeg8aVBp21v51j+bCGtXYATin Nig+Mu829L3M3WxV6UIkVxjeepd0xEmAxJnhKlA0v1/6pFsKO8pzHbygKISqmwFL NSCVcIHafIOeaIAJFuHRZzwOi0MxKYVMRBviqUiF+52Nj9F/A0eTvAXL7QIDAQAB AoGBAOpTi4MoW1aNeCsy6ilfuroS+2kNacPD5FpoDRVL8/vSW8Bu5V27dnV8R23M 7c3lBDh2yMB9V9E4Qbpn+OoX1L/2r6OOi8T0w293GYgClCVgLVP90PUAD6/fW9UY mtgrjmJSKRh6H67V0IUpOsY9eidl0V1po/GGvNDNgUgkFwwBAkEA/9LzPxg5acDC hqZXDchJtBxc/nzEpUWoZk0EKU3PvkH8DejsaggFe8MDtqJNxRD9liAi7fw7Hqts 0/bnMc+oXQJBAPmJ+70j9RronLsn+I/N3IXBaQi1zGTeppviA0ST+7uTD35iAPoL GBGyvyIkk3I0T48H6o50tqEcISxhRzi9ONECQQC7qzfwqEet8c+CUdJ49N5Et63s rwDfMVuZOJR97Gwi6WsLlTyhiCLlqKk3uJcOoyk0kXyuUyPXmvAqCu2NmAWtAkEA isKy7LNBCcyN0vjgHD8yQGKToJdPaEvzQ72DabAMjHqzY+jleCWRJc5KwJasMxZp ozSYtsyp/Z7hx4b0jtWR8QJAWSXcg9gZs0qtt1Xwu2XI/r/f/8TjbPLGT0nbfu0Y Baqfpf2bkq9UjIwzVW9TmVJ/RZbvh8ege4Ff9UDw/eVoHA== -----END RSA PRIVATE KEY-----
-----BEGIN PRIVATE KEY----- MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAPleEg1ifwfzjqKZ MlVO1RMlRNJ6DxpUGnbW/nWP5sIa1dgBOKc2KD4y7zb0vczdbFXpQiRXGN56l3TE SYDEmeEqUDS/X/qkWwo7ynMdvKAohKqbAUs1IJVwgdp8g55ogAkW4dFnPA6LQzEp hUxEG+KpSIX7nY2P0X8DR5O8BcvtAgMBAAECgYEA6lOLgyhbVo14KzLqKV+6uhL7 aQ1pw8PkWmgNFUvz+9JbwG7lXbt2dXxHbcztzeUEOHbIwH1X0ThBumf46hfUv/av o46LxPTDb3cZiAKUJWAtU/3Q9QAPr99b1Ria2CuOYlIpGHofrtXQhSk6xj16J2XR XWmj8Ya80M2BSCQXDAECQQD/0vM/GDlpwMKGplcNyEm0HFz+fMSlRahmTQQpTc++ QfwN6OxqCAV7wwO2ok3FEP2WICLt/Dseq2zT9ucxz6hdAkEA+Yn7vSP1Guicuyf4 j83chcFpCLXMZN6mm+IDRJP7u5MPfmIA+gsYEbK/IiSTcjRPjwfqjnS2oRwhLGFH OL040QJBALurN/CoR63xz4JR0nj03kS3reyvAN8xW5k4lH3sbCLpawuVPKGIIuWo qTe4lw6jKTSRfK5TI9ea8CoK7Y2YBa0CQQCKwrLss0EJzI3S+OAcPzJAYpOgl09o S/NDvYNpsAyMerNj6OV4JZElzkrAlqwzFmmjNJi2zKn9nuHHhvSO1ZHxAkBZJdyD 2BmzSq23VfC7Zcj+v9//xONs8sZPSdt+7RgFqp+l/ZuSr1SMjDNVb1OZUn9Flu+H x6B7gV/1QPD95Wgc -----END PRIVATE KEY-----
-----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD5XhINYn8H846imTJVTtUTJUTS eg8aVBp21v51j+bCGtXYATinNig+Mu829L3M3WxV6UIkVxjeepd0xEmAxJnhKlA0 v1/6pFsKO8pzHbygKISqmwFLNSCVcIHafIOeaIAJFuHRZzwOi0MxKYVMRBviqUiF +52Nj9F/A0eTvAXL7QIDAQAB -----END PUBLIC KEY-----
來源 : https://b.zmxy.com.cn/technology/openDoc.htm?relInfo=RSA_INFO_DOC