api介面安全驗證 傳輸密文

2022-06-05 13:06:08 字數 1173 閱讀 1332

示意圖

原理

從圖中可以看得很清楚,前台想要呼叫介面,需要使用幾個引數生成簽名。

時間戳:當前時間

隨機數:隨機生成的隨機數(最好是唯一)

私鑰:服務端分配給前端的私鑰(附帶的還會有乙個公鑰,公鑰作為請求引數傳給服務端)

演算法規則:商定好的運算規則,利用演算法規則生成乙個簽名。

前台生成乙個簽名,當需要訪問介面的時候,把時間戳,隨機數,公鑰,請求引數,簽名傳遞到後台。後台拿到這些資料之後,通過一樣的演算法規則計算出簽名,然後和傳遞過來的簽名進行對比,一樣的話,返回資料。

演算法規則

簽名步驟一:拼接獲取到的引數,並按字典序排序引數,得到乙個string

簽名步驟二:在string後加入key=私鑰

簽名步驟三:md5加密

簽名步驟四:所有字元轉為小寫

/**

* 作用:生成簽名

* @param array $params

* @return bool

*/public function getsign($params = array())

//相容rfc 3986 urlencode相容

PHP開發api介面安全驗證

目錄 在實際工作中,使用php寫api介面是經常做的,php寫好介面後,前台就可以通過鏈結獲取介面提供的資料,而返回的資料一般分為兩種情況,xml和json,在這個過程中,伺服器並不知道,請求的 是什麼,有可能是別人非法呼叫我們的介面,獲取資料,因此就要使用安全驗證。從圖中可以看得很清楚,前台想要呼...

PHP開發api介面安全驗證

隨機數 隨機生成的隨機數 口令 前後臺開發時,乙個雙方都知道的標識,相當於暗號 演算法規則 商定好的運算規則,上面三個引數可以利用演算法規則生成乙個簽名。然後拼接成字串 進行sha1加密 再進行md5加密 轉換成大寫。curl模擬get請求。隨機生成字串 private function creat...

PHP開發api介面安全驗證

在實際工作中,使用php寫api介面是經常做的,php寫好介面後,前台就可以通過鏈結獲取介面提供的資料,而返回的資料一般分為兩種情況,xml和json,在這個過程中,伺服器並不知道,請求的 是什麼,有可能是別人非法呼叫我們的介面,獲取資料,因此就要使用安全驗證。從圖中可以看得很清楚,前台想要呼叫介面...