【发布时间】:2017-08-04 12:23:45
【问题描述】:
要为 api 连接生成身份验证标头,我的代码应遵循以下步骤:
- 创建 [unique]:[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 中是否有其他方法可以按照步骤创建身份验证密钥?
【问题讨论】:
-
我认为它工作正常:-eval.in/841537
标签: php