Aru*_*tel 11 sign node.js jwt jwt.io
我使用以下片段在 Node.js 中签署了 jwt。
var jwtoken = jwt.sign({ email: 'test@test.com', name: 'test' }, 'abcd');
Run Code Online (Sandbox Code Playgroud)
签名后我得到了以下令牌
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InRlc3RAdGVzdC5jb20iLCJuYW1lIjoidGVzdCIsImlhdCI6MTYzNjE4MjYwOX0.07FXjm1lKEIiU_QOMEEOFzhsC0vtKt4PFoW-7YHHzyM
Run Code Online (Sandbox Code Playgroud)
当我将 JWT 粘贴到 jwt.io 中时,我想用jwt.io验证这一点,我可以看到该网站对我提供的任何密钥显示“签名已验证”(我不需要提供 abcd 这是我的实际密钥)。我预计需要密钥来确定签名是否有效。jwt.io 如何在没有原始密钥的情况下确定 jwt 是否有效。
jps*_*jps 32
https://jwt.io调试器可以双向工作,您可以检查和验证令牌或创建和签名令牌。
特别是。当您拥有使用对称算法(即 HS256、HS384 或 HS512)签名的令牌时,您很容易获得错误验证,因为只有一个密钥用于签名和验证令牌。
当您第一次将令牌粘贴到左侧,然后将密钥或密钥粘贴到右列“验证签名”下的字段中时,签名将被重新创建,如果密钥不是用于验证签名的密钥,签名可能会发生变化。创建原始令牌。在这种情况下,结果始终是“签名已验证”,因为签名只是根据输入的秘密计算的。
验证签名的正确方法是首先将密钥粘贴到密钥字段中,然后将令牌粘贴到调试器的左侧部分。始终确保输入字段中的任何其他内容都被覆盖。如果您的密钥实际上是 Base64 编码的(即以 Base64 编码形式存储的二进制秘密),您应该通过选中“秘密 Base64 编码”复选框来告诉 jwt.io。
那么结果“签名已验证”或“无效签名”将是正确的。
此后您输入的每个秘密都会导致重新计算签名,然后始终会对其进行验证(使用新的秘密)。另外,单击“秘密 bas64 编码”复选框会导致重新计算。

但是,如果您按照正确的顺序执行此操作,错误的秘密会导致“无效签名”结果:
| 归档时间: |
|
| 查看次数: |
8899 次 |
| 最近记录: |