为了产生用于一个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 –