|
淺談支付網關的接口安全協(xié)議(2011-01-06 00:20:22)
網上支付對個人站長放開,是近兩年的事。我做過基本上市面上所有第三方支付的網關對接開發(fā),通過對各服務商的接口安全協(xié)議進行對比,發(fā)現(xiàn)各服務商的純http協(xié)議的接口,所采取的加密和驗證方式基本上是一致的。 簡單來說,這種加密驗證方式,有三個要點。 1、選擇要參與加密的字段。凡是不允許修改的字段,都必須參與加密。舉例說,一個網上支付接口,參與加密的字段至少應包括:訂單號、支付金額、回傳地址、商家代碼。 舉個簡單的例子吧。 比如,第三方支付接口規(guī)定的字段名如下: 拼串如下: 32位加密: 至此加密過程完成,只需要把加密結果加上所需傳遞的字段,一起用get方式傳過去即可。注意,參與加密的字段,除密鑰之外,必須都傳遞過去。 解密的過程,跟加密基本一樣。比如,a端把加密信息傳給b端。b端會收到各關鍵參數(shù)以及a端發(fā)過來的關鍵參數(shù)加密結果。b端的工作就是還原a端的拼串、做MD5加密運算等一系列操作,然后,把運算結果跟傳過來的加密結果對比。如果b端的運算結果與a端傳過來的運算結果一致,說明參數(shù)值未被篡改,就可以放心使用了。 其實,這個加密解密的方式,關鍵就是雙方約定的那個密鑰。密鑰只有a、b雙方知道,那么篡改參數(shù)的第三方就拼不出正確的加密結果,在b端就不能獲得驗證。 該協(xié)議可以廣泛應用于各類接口,自己的不同系統(tǒng)之間如果需要接口對接,也完全可以借用這種方式。 本文來自老彭的職業(yè)博客 http://www./?p=156 |
|
|
來自: java_laq小館 > 《支付網關》