支付寶 RSA和RSA2簽名演算法區別
阿新 • • 發佈:2018-10-31
RSA和RSA2簽名演算法區別更新時間:2018-02-07
新建應用只支援RSA2簽名方式,目前已使用RSA簽名方式的應用仍然可以正常呼叫介面,詳情請見開放平臺介面簽名方式升級公告。
什麼是數字簽名?
一個很好的說明文件可以參考What is a Digital Signature?,中文翻譯可以參考:數字簽名是什麼?。
簡單來說,簽名主要包含兩個過程:摘要和非對稱加密,首先對需要簽名的資料做摘要(類似於常見的MD5)後得到摘要結果,然後通過簽名者的私鑰對摘要結果進行非對稱加密即可得到簽名結果。
開放平臺支援的簽名演算法
開放平臺簽名演算法名稱 | 標準簽名演算法名稱 | 備註 |
---|---|---|
RSA2 | SHA256WithRSA | 強制要求RSA金鑰的長度至少為2048 |
RSA | SHA1WithRSA | 對RSA金鑰的長度不限制,推薦使用2048位以上 |
由於計算能力的飛速發展,從安全性角度考慮,螞蟻金服在原來SHA1WithRSA簽名演算法的基礎上,新增了支援SHA256WithRSA的簽名演算法。該演算法在摘要演算法上比SHA1WithRSA有更強的安全能力。
目前SHA1WithRSA的簽名演算法會繼續提供支援,但為了您的應用安全,強烈建議使用SHA256WithRSA的簽名演算法。
注意事項:
- 協議引數:開放平臺的報文標準中,sign_type引數用於指定簽名演算法,若使用SHA256WithRSA簽名演算法則在報文中需要指定sign_type=RSA2,若您使用開放平臺SDK,可參考SDK相關文件說明。
- 避免公私鑰混用:不同簽名演算法的簽名金鑰是隔離的。由於同時提供了兩套簽名演算法,若選擇了特定的簽名演算法,請保證使用對應的私鑰簽名,同時使用對應的支付寶公鑰進行驗籤。