不喜欢广告? 无广告 今天

JWT 编码器/构建器

开发人员安全
广告 移除?
alg 字段将被下方的算法选择器覆盖。
用于 HMAC 的签名密钥。请勿在此处共享真实的生产密钥。

令牌部分(base64url)

广告 移除?

指导

JWT 编码器 / 构建器

JWT 编码器/构建器

直接在您的浏览器中构建已签名的 JSON Web Token。只需输入头部和有效载荷,选择 HMAC 算法,提供共享密钥,即可复制一个可用于 API 测试、调试或本地开发的即用型令牌。所有签名操作均通过 SubtleCrypto Web API 完成,因此您的密钥和声明永远不会离开页面。

如何使用

  1. 编辑 标题(JSON) 块以包含 typ 以及任何自定义字段,例如 kid。的 alg 值将被下方的算法选择器覆盖。
  2. 编辑 有效载荷(JSON) 块包含标准声明,如 iss, sub, iat, exp,以及您的服务所需的任何自定义声明。
  3. 选择一个算法: HS256, HS384, 或者 HS512.
  4. 将您的 共享密钥。使用至少与哈希输出长度相等的随机字符串,以匹配每个算法的安全级别。
  5. 从输出框中复制生成的令牌,或分别复制头部、有效载荷或签名部分。

特征

  • 三种 HMAC 算法 – HS256、HS384 和 HS512 覆盖了所有常见的 HMAC 签名 JWT 使用场景。
  • 实时签名 – 当您编辑任何字段时,签名令牌会实时重新生成,因此您可以立即看到每次更改的影响。
  • 内联 JSON 验证 – 在令牌成为损坏令牌之前,如果头部或有效载荷的 JSON 格式不正确,会显示清晰的错误信息。
  • 分部分复制 – 可以复制完整的令牌,或单独获取 base64url 编码的头部、有效载荷或签名部分。
  • 仅客户端 – 签名操作在您的浏览器中通过 SubtleCrypto 完成。密钥和声明永远不会发送到服务器。
  • 与 JWT 解码器配对 – 在编码器和我们现有的 JWT 解码器工具之间进行令牌往返,以验证声明。

何时使用此工具

  • 测试一个期望带有特定声明的 bearer 令牌的 API 端点。
  • 重现一个已知有效的令牌失败的认证场景。
  • 教授或学习 JWT 签名是如何构建的。
  • 为本地开发生成短期令牌,而无需搭建认证服务器。

常问问题

  1. 什么是 JWT 以及为何需要签名?

    JSON Web Token(JWT)是一种紧凑的 URL 安全字符串,由头部、有效载荷和签名组成。签名使接收方能够验证头部和有效载荷是使用共享密钥生成的,并且在传输过程中未被修改。如果没有有效的签名,任何人都可以伪造声明,因此所有用于身份验证或授权的令牌都必须签名。

  2. HMAC 签名如何使用 HS256、HS384 和 HS512?

    HMAC(基于哈希的消息认证码)将一个密钥与一个密码学哈希函数结合使用。HS256 使用 SHA-256 生成 256 位的 MAC,HS384 使用 SHA-384,HS512 使用 SHA-512。签名者对头部和有效载荷通过点连接后的 base64url 编码内容计算 HMAC,然后附加 base64url 编码的 MAC。任何拥有相同密钥的人都可以重新计算 MAC 并进行比对以验证其真实性。

  3. 为什么 JWT 使用 base64url 而不是标准 base64?

    标准 base64 使用 +、/ 和 = 字符,这些字符在 URL 中必须进行百分号编码,当令牌作为查询参数或 HTTP 头传递时可能会出现问题。base64url 将 + 替换为 -,将 / 替换为 _,并移除尾部的 = 填充。这生成一个可以直接放入 URL、HTTP 头和 Cookie 中的安全字符串,无需额外编码。

  4. 什么样的密钥对 HMAC 签名的 JWT 足够安全?

    对于 HS256,密钥应至少为 32 个随机字节(256 位);对于 HS384,至少为 48 个字节;对于 HS512,至少为 64 个字节。短而人为选择的密码容易受到暴力破解攻击,因为攻击者一旦捕获一个令牌,就可以在离线环境中猜测密钥。请从加密随机源生成密钥,将其存储在源代码树之外,并在怀疑暴露时定期轮换密钥。

想要享受无广告的体验吗? 立即无广告

安装我们的扩展

将 IO 工具添加到您最喜欢的浏览器,以便即时访问和更快地搜索

添加 Chrome 扩展程序 添加 边缘延伸 添加 Firefox 扩展 添加 Opera 扩展

记分板已到达!

记分板 是一种有趣的跟踪您游戏的方式,所有数据都存储在您的浏览器中。更多功能即将推出!

广告 移除?
广告 移除?
广告 移除?

新闻角 包含技术亮点

参与其中

帮助我们继续提供有价值的免费工具

给我买杯咖啡
广告 移除?