1. 程式人生 > >支付寶之私鑰簽名公鑰驗籤

支付寶之私鑰簽名公鑰驗籤

8th,March,2016 Tuesday RSA公鑰加密演算法簡介 非對稱加密演算法只有短的RSA鑰匙才可能被強力方式解破。到2008年為止,世界上還沒有任何可靠的攻擊RSA演算法的方式。只要其鑰匙的長度足夠長,用RSA加密的資訊實際上是不能被解破的。
目前被破解的最長RSA金鑰是768個二進位制位。也就是說,長度超過768位的金鑰,還無法破解(至少沒人公開宣佈)。因此可以認為,1024位的RSA金鑰基本安全,2048位的金鑰極其安全。
加密用公鑰,解密用私鑰。 簽名&&加密 文件: “RSA是一種公鑰加密演算法。能夠抵抗到目前為止已知的絕大多數密碼攻擊,已被ISO推薦為公鑰資料加密標準。主要用於公鑰加密私鑰解密
、私鑰簽名公鑰驗籤。”--from 支付寶文件
“使用各自語言對應的SHA1WithRSA簽名函式利用商戶私鑰對待簽名欄位進行簽名,並進行Base64編碼。”--from 支付寶文件 (r: 我可以翻白眼嗎,前面不懂簽名是什麼意思,相當於加密碼,還是解密。!公鑰加密私鑰解密與私鑰簽名公鑰驗籤用的是同一套公鑰體系,但數字簽名與數字加密實現過程是相反的,金鑰對也有所區別。數字簽名對身份進行認證,保證傳送訊息的完整性。 數字加密可保證資訊的保密性)
支付寶簽名驗籤: “支付寶公鑰:開發者請求支付寶並獲得返回時,開發者用於驗籤使用的公鑰”--from 支付寶文件
簽名演算法: 商戶生成簽名字串,現支援RSA 簽名要求: 請求和接收資料均需要校驗簽名
r: 接收支付寶返回的資料需通過支付寶公鑰進行驗籤,確認返回資料者身份為支付寶。 客戶端將商戶的簽名字串用私鑰簽名上傳到伺服器,伺服器端通過開發人員上傳的公鑰進行驗籤,確認身份。) 金鑰分為三種類型: 1) 開放平臺金鑰: 應用公鑰 // app_id 和金鑰 openapi 2) 合作伙伴金鑰:商戶 // partner_id和金鑰 mapi  簽名方式:MD5,RSA,DSA(簽名方式依據具體產品)。 功能包括:快捷登陸,移動支付,即時到賬收款,手機網頁支付。 3) 無線產品金鑰: (expired) 簽名流程: 1) 組裝待簽名字串  2) 呼叫簽名函式 a. "使用各自語言對應的SHA1WithRSA簽名函式利用商戶私鑰對待簽名欄位進行簽名,並進行Base64編碼。" --from aliDoc
 ( r:閘道器為mapi,商戶即合作伙伴,利用合作伙伴金鑰和partner_id 進行簽名) 3) 使用簽名 "得到的簽名結果也是一個字串,這個字串就是sign引數的值,將這個字串賦值給sign引數併發起請求。"--from aliDoc 驗籤流程: 1) 組裝待驗簽字符串 2) 呼叫簽名驗籤函式 “RSA:使用各自語言對應的SHA1WithRSA簽名驗證函式,傳入待驗簽字段、支付寶公鑰、引數sign對應的值(該引數為支付寶返回)進行驗籤,根據返回結果判定是否驗籤通過。
RSA加密方式: 1)通過openssl工具生成公私鑰  2) 上傳生成的公鑰,獲取支付寶公鑰。 資料: 支付寶幫助中心文件: 即時到賬
參考資料: