【问题标题】:PHP - read a private key file ".key" to use for JWTPHP - 读取用于 JWT 的私钥文件“.key”
【发布时间】:2021-09-22 22:34:37
【问题描述】:

我有一个私钥文件$formatPrivateKey 需要用作变量

$privateKey =  file_get_contents('27660275_website.com.key');

$signature = hash_hmac('sha256', $base64UrlHeader . "." . $base64UrlPayload, $privateKey, true);

我需要这个来生成客户端断言 JWT。

但是,我收到以下错误 - {"error":"invalid_request","error_description":"The Token's Signature resulted invalid when verified using the Algorithm: SHA256withRSA"}

我想我没有正确阅读file_get_contents('27660275_website.com.key')

我的$privateKey 文件以以下-----BEGIN RSA PRIVATE KEY----- 开头并以-----END RSA PRIVATE KEY---- 结尾。我试图删除它们,但仍然得到相同的输出。

我尝试按照 Stackoverflow 中问题的另一个答案中的建议连接字母数字序列。但是,它没有用。

因此我假设我没有正确阅读file_get_contents('27660275_website.com.key')

【问题讨论】:

  • 您遗漏了哪些信息,这样您就不会再猜测而是知道了?您在文件上使用 file_get_contens() 以从中读取密钥的理由是什么?反复敲打,直到它不再移动?
  • .key 文件中的“字母数字序列”不是实际的密钥,而是二进制数据的文本(base64 编码)表示形式。

标签: php json jwt


【解决方案1】:

在这种情况下,密钥是密码(字符串)而不是私钥文件。

例如,看看这个,他们只是使用密码'secret'。任何字符串都应该使您的代码工作。

https://www.php.net/manual/en/function.hash-hmac.php

【讨论】:

猜你喜欢
  • 2020-01-03
  • 2017-12-15
  • 2018-06-07
  • 1970-01-01
  • 2013-12-10
  • 2020-08-28
  • 2019-12-24
  • 2012-08-01
相关资源
最近更新 更多