APICloud集成支付寶--RSA祕鑰生成詳解

RSA 和 OpenSSL 介紹

    記得大學裏有門課叫《電子支付與安全》,這裏面就講了雙重祕鑰加密,主要內容如下:

    RSA 是一種非對稱的簽名算法,即簽名密鑰(私鑰)與驗籤密鑰(公鑰)是不一樣的, 私鑰用於簽名,公鑰用於驗籤。在與支付寶交易中,會有 2 對公私鑰,即商戶公私鑰,支付寶公私鑰。使用這種算法可以起到防止數據被篡改的功能,保證支付訂單和支付結果不可抵賴(商戶私鑰只有商戶知道)。

    OpenSSL 是基於衆多的密碼算法、公鑰基礎設施標準以及 SSL 協議安全開 發包。通過 OpenSSL 生成的簽名和內置的算法可以做到跨平臺,這樣在不同的開發語言中均可以簽名和驗籤。


Windows下OpenSSL安裝與使用(本人電腦Window7 x64)

    剛開始以爲openssl是Windows命令行自帶的一個命令呢,結果很不幸--沒有。百度了一下Windows下安裝和配置openssl結果安裝了很多無用的東西,結果只是爲了編一個OPenssl。於是乎就百度下載了很多編譯後的Openssl,試了很多次,還花了某幣在某論壇上下載了。最終找到一份可以使用的Openssl程序。給大家推薦一個網站,可以去那裏獲取各種版本的Openssl。http://slproweb.com/products/Win32OpenSSL.html

也可以去附件中自己下載.exe形式的安裝包。


將配置文件添加至環境變量(可選)

Openssl安裝目錄爲C:\\alipay 。

有興趣的童鞋可以將配置文件目錄添加到環境變量。

第一步:新建OPENSSL_HOME變量

wKioL1XeyOzj41F6AAB_urWctzE270.jpg

第二步:新建配置文件環境變量

wKiom1Xex1Ky26cFAACA6WcTbnk765.jpg

還可以將安裝文件bin目錄直接添加到Path變量中,這樣就不用每次執行命令還得進入bin目錄。

製作公私祕鑰

第一步:生成原始商戶祕鑰

在命令行下進入安裝文件bin目錄,執行"openssl genrsa -out rsa_private_key.pem 1024",效果如圖所示:

wKiom1XeyhDDg0mLAACzcgHcut4484.jpg

在bin目錄下生成了私鑰文件,進入bin目錄查看如下:

wKiom1XeymzxcPlGAAA9vpejnbA704.jpg

第二步:將商戶私鑰轉換成pkcs8格式。

在命令行中執行如下命令:

"openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt"

效果如圖所示:

wKioL1XezWzCc6r1AAKQcnRgRgI511.jpg

馬賽克打的不專業請忽略。

複製key內容從註釋-----BEGIN PRIVATE KEY-----(不包括該行註釋)至-----END PRIVATE KEY-----止。將複製的內容另存爲private_key.txt(去掉空格、換行),請妥善保管,簽名時使用。


第三步:生成商戶公鑰。在命令行執行:

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

會在C:\\alipay\bin目錄下生成rsa_public_key.pem文件。如圖所示:

wKiom1XezfKS4VQSAAA5SN9WIrs496.jpg

用文本編輯器打開該文件,如下圖所示:

wKioL1Xe0E7RvVIRAAE_gW1fYi4017.jpg

刪除註釋"-----BEGIN PUBLIC KEY-----"和"-----END PUBLIC KEY-----",去掉回車和換行。最後得到一 行字符串並保存至“public_key.txt”文件中。如下圖所示:

wKiom1Xezunh5nfeAACRzQxbsmg537.jpg最後上傳商戶公鑰至支付寶用於驗證商戶私鑰。






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章