首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP HMAC_HASH SHA256返回不正确的值

PHP HMAC_HASH SHA256返回不正确的值
EN

Stack Overflow用户
提问于 2020-10-21 20:58:43
回答 1查看 69关注 0票数 0

我正在尝试在PHP中使用HMAC256生成JWT。但是我注意到响应返回无效/不正确的值。我比较了智威汤逊网站https://jwt.io/#debugger-io中的值,这就是为什么我说它是不正确的。

代码语言:javascript
运行
复制
$token = '*******-****-****-****-*********';
    
 $header = array(
    "alg" => "HS256",
    "typ" => "JWT"
);
    
$header = json_encode($header);
$header = base64_encode($header);

$payload = array(
   "id" => "XXXX"
);

 $payload = json_encode($payload);
 $payload = base64_encode($payload);
 $payload = str_replace('==', '', $payload);

 $toHash = $header .'.'. $payload;

 $signature = hash_hmac('sha256', $toHash, $token, true);
 $signature = base64_encode($signature);

 // yzt9U/pSc+PFnXHqKIvMDEkMhlUnVL6RuNtqciAPsXw= (Token generated in PHP)
 // yzt9U_pSc-PFnXHqKIvMDEkMhlUnVL6RuNtqciAPsXw (Token generated in JWT website)

Token应与JWT中生成的相同。

EN

回答 1

Stack Overflow用户

发布于 2020-10-21 21:10:36

我在这里为每个人张贴我的答案。

代码语言:javascript
运行
复制
public function base64url_encode($data) {

$data = str_replace(array('+', '/'), array('-', '_'), base64_encode($data));
  return $data;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64464086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档