数据实验室JWT 解码与验证工具切换工具

JWT 解码与验证工具

读取令牌的头部和声明,用易读的文字而不是纪元秒数查看它何时过期,并用你自己的密钥或公钥验证签名,全部在此标签页内完成。JWT 是持有者凭证:谁拿到它,谁就能冒充其主体,仅凭这一点就不该把它粘贴到别人的服务器上。

  • 可验证: HS256/384/512, RS, PS
  • 你的令牌: 数据不会离开此标签页
  • 密钥: 绝不存储或发送

你的令牌

粘贴 JWT,可带或不带 Bearer 前缀。

算法
HS256
JWT
声明
8
位于载荷中
状态
已过期
last year
  • 已过期:exp 是过去的时间。

签名

HMAC 令牌使用共享密钥验证。

签名与此密钥匹配(HS256)。

头部

{
  "alg": "HS256",
  "typ": "JWT"
}

声明

时间按你的本地时钟显示,而不是纪元秒数。

声明值
sub主体:令牌所代表的对象4821
nameريم الحلبي
roleeditor
scope已授予的权限范围orders:read orders:write
iss签发者:谁创建了这个令牌https://api.frugaldomain.site
aud受众:令牌发给谁使用frugal-dashboard
iat签发时间17500000006/15/2025, 6:06:40 PM · last year
exp过期时间17500036006/15/2025, 7:06:40 PM · last year

解码不等于验证

任何人都能读取 JWT,载荷只是 base64 编码而不是加密。证明它出自你的服务器的是签名,而验证签名需要密钥。只做解码的工具只能告诉你令牌声称了什么,无法告诉你这些声明是否属实。

为什么要提示 alg "none"

头部写着 alg: none 的令牌完全没有签名。遵从这个头部的库会接受任何人都能伪造的令牌,这是 JWT 最古老的攻击方式,至今仍能遇到。因此本页会把它标为错误,而不是悄悄解码。

切勿粘贴私钥

RSA 验证只需要公钥,而公钥本来就是公开的。任何正当的服务都不会要求你把私钥或 HMAC 密钥粘贴到你无法掌控的网页上,包括本页,所以整个检查都在本地运行,页面也明确说明了这一点。

常见问题

把 JWT 粘贴到在线网站安全吗?
多半不安全。令牌是持有者凭证,谁拿到谁就能在过期之前冒充其主体。请使用像本页这样在浏览器内运行的工具,或用项目里的库在本地解码。
不用服务器怎么验证 JWT 签名?
使用浏览器内置的 WebCrypto。HS256 令牌粘贴共享密钥,RS256 令牌粘贴 PEM 格式的公钥,检查在本地完成。不要把私钥或生产环境密钥粘贴到任何不属于你的页面。
alg: none 是什么意思?
表示令牌没有签名。接受该头部的库会接受任何人伪造的令牌。请在库的层面拒绝它,并固定你允许的算法列表。
为什么工具不支持 ES256 令牌?
椭圆曲线令牌需要原始签名对和不同的密钥导入方式,只做对一半的实现比不做更糟糕。本页明确说明这一点,而不是假装支持。

这个页面对你有帮助吗?

成为第一个为本页评分的人