【问题标题】:Generate HMAC Signature on PHP在 PHP 上生成 HMAC 签名
【发布时间】:2018-12-05 16:42:58
【问题描述】:

下面的系统如何应用到php上?

StringToSign = HTTPMethod+":"+RelativeUrl+":"+AccessToken+":"+
Lowercase(HexEncode(SHA-256(RequestBody)))+":"+Timestamp

Signature = HMAC-SHA256(apiSecret, StringToSign)

我的脚本:

$encoderData = json_encode($bodyToHash, JSON_UNESCAPED_SLASHES);
$hash        = hash("sha256", $encoderData);
$stringToSign   = $Method. ":" .$url . ":" . $auth_token . ":" . $hash . ":" . $Timestamp;
$auth_signature = hash_hmac('sha256', $secret_key, $stringToSign,false);

谢谢,

【问题讨论】:

  • php.net/manual/en/function.hash-hmac.php,其余的看起来比较明显,你试过什么?
  • 如何做这个系统“小写(HexEncode(SHA-256(RequestBody)))”
  • strtolower(bin2hex(hash("sha256", $encoderData))) 也许
  • 小写字母(HexEncode(SHA-256(RequestBody))) 的正确答案是否正确? @Azivans

标签: php sha256 hmac


【解决方案1】:

我不明白你的意思,但是 你可以试试这个;

<?php
    $stringToSign = 'abcd';
    $apiSecret = 'secretkey';

    $hashed = hash_hmac('sha256', $stringToSign, $apiSecret);
?>

【讨论】:

  • 我们必须在“小写(HexEncode(SHA-256(RequestBody)))”部分中得到我不理解的“StringToSign”结果如何将其应用于php
【解决方案2】:

做一些 BCA 的事情? :p

如果你想使用GET,你可以使用这个功能:

strtolower(hash('sha256', ''));

【讨论】:

  • 你能分享完整的脚本来获取签名吗?谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-25
相关资源
最近更新 更多