爲了產生用於一個API連接認證頭,我的代碼應遵循下列步驟:PHP字符串作爲字節數組,然後散列base64編碼
- 創建表格[獨特]的字符串:[apikey]。
- 使用UTF-8編碼將字符串從步驟1轉換爲字節數組。
- 計算步驟2中字節數組的SHA-256散列值。
- Base64對步驟3中計算的字節數組進行編碼;這個字符串將是認證密鑰。
據我所知,php 中的字符串是字節數組,所以我的初始方法如下所示。
public function generateAuthKey()
{
$unique = uniqid(); # unique string
$string = $unique.':'.$this->apiKey; # step 1
$string = utf8_encode($string); # step 2 ?
$hash = hash('sha256', $string); # step 3
$base64 = base64_encode($hash); # step 4
return $base64;
}
我嘗試使用此身份驗證密鑰進行連接的應用程序將收到403錯誤。
上面的代碼是否完成了所需的步驟(也許在我的api鍵中有錯誤)或者是否有其他方法在php中遵循創建授權密鑰的步驟?
我認爲它工作正常:-https://eval.in/841537 –