gpt4 book ai didi

javascript - JWT sha256 哈希与 Internet 草稿示例不匹配

转载 作者:行者123 更新时间:2023-11-30 17:08:18 24 4
gpt4 key购买 nike

我一直致力于让 JWT 在 Google Apps 脚本中工作。由于我的结果很糟糕,所以我去了 JWS Internet-Draft: http://self-issued.info/docs/draft-ietf-jose-json-web-signature.html#HS256Encoding

使用这个示例对象:{“iss”:“乔”, “exp”:1300819380, “http://example.com/is_root “:真

代码片段:

var eClaim = UTF8.encode(JSON.stringify(claim));
eClaim = Base64EncodeUrl(eClaim);

我的 Base64url 是:

eyJpc3MiOiJqb2UiL----CJleHAiOjEzMDA4MTkzODAs----Imh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ

(- 由我添加)

规范说明我应该得到什么:

eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ

我的编码对象中有间隙(我再次添加 ---- 以显示间隙)。虽然它可能是\n、\r 或\t,但没有一个符合预期结果。我确实将示例粘贴到在线 base64url 编码器/解码器中。我的 base64 解码完美,示例 JSON 编码与我的完全一样。是我做错了什么还是互联网草案不正确?

最佳答案

你说你试过\r 和\n ,但这是我在解码后确定的你的 sample 。

区别在于示例版本中的换行符CRLF

他们的:

0000000  7b  22  69  73  73  22  3a  22  6a  6f  65  22  2c  0d  0a  20
{ " i s s " : " j o e " , cr nl sp
0000020 22 65 78 70 22 3a 31 33 30 30 38 31 39 33 38 30
" e x p " : 1 3 0 0 8 1 9 3 8 0
0000040 2c 0d 0a 20 22 68 74 74 70 3a 2f 2f 65 78 61 6d
, cr nl sp " h t t p : / / e x a m
0000060 70 6c 65 2e 63 6f 6d 2f 69 73 5f 72 6f 6f 74 22
p l e . c o m / i s _ r o o t "
0000100 3a 74 72 75 65 7d
: t r u e }
0000106

你的:

0000000  7b  22  69  73  73  22  3a  22  6a  6f  65  22  2c  22  65  78
{ " i s s " : " j o e " , " e x
0000020 70 22 3a 31 33 30 30 38 31 39 33 38 30 2c 22 68
p " : 1 3 0 0 8 1 9 3 8 0 , " h
0000040 74 74 70 3a 2f 2f 65 78 61 6d 70 6c 65 2e 63 6f
t t p : / / e x a m p l e . c o
0000060 6d 2f 69 73 5f 72 6f 6f 74 22 3a 74 72 75 65 7d
m / i s _ r o o t " : t r u e }
0000100

据我了解,JSON 不需要在分隔符逗号后换行。

关于javascript - JWT sha256 哈希与 Internet 草稿示例不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27520932/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com