/ 安全 / jwt
会员
主题: 跟随系统对比度: 标准

JWT 解码与验证器

固定到你的工具

解码 JSON Web Token,检查有效期和声明,并用密钥或公钥验证签名。

完全在你的浏览器中运行。你输入的内容绝不会发送到我们的服务器。

载荷
令牌 · 0 行
粘贴打开文件Ctrl O清空

载荷

视图
载荷 · 0 行
下载复制Ctrl Shift C

HS256/384/512 使用密钥;其他算法使用 PEM(SPKI 或证书)格式的公钥,或 JWK / JWKS(按令牌的 kid 选择密钥)。密钥绝不会被分享或保存。

本地已测试 · v0.15.0 · 37 个测试用例

历史记录 · 0

处理过的输入会在此页面打开期间显示在这里。重新加载页面会清空列表。

代码示例

可直接复制到你自己的项目中。每个示例只使用该语言的标准库,因此无需安装任何东西。

示例

最多可为 3 种语言加星标,它们会在每个工具页面中排在最前。

收藏 JavaScript
const token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c'

const payload = token.split('.')[1]
const json = Buffer.from(payload, 'base64url').toString('utf8')

console.log(JSON.stringify(JSON.parse(json), null, 2))

它能做什么

解码 JSON Web Token 来读取它的头部和载荷,查看它是否已过期,并用密钥或公钥验证它的签名。令牌在你的浏览器中解码,本页不显示广告,令牌和密钥绝不会被分享或保存。

如何使用

  1. 粘贴令牌。开头的 Bearer 前缀和换行符会被忽略。
  2. 以格式化或紧凑的 JSON 阅读载荷。载荷下方是算法、状态,以及 exp、nbf 和 iat 的时间,旁边显示它们与现在相差多久。
  3. 要验证签名,请输入密钥:HS256、HS384 和 HS512 使用密钥(secret),RS、PS、ES 和 EdDSA 使用公钥(PEM 或 JWK)。
  4. 可以在 JSON 与声明之间切换头部和负载:声明视图会列出每个声明及其含义,并把时间类声明显示为日期。
  5. 打开编码标签页,可以编写头部和负载,并用密钥或私钥(PKCS#8 PEM 或 JWK)签署。该标签页上的内容不会被保存、分享或加入历史记录。

示例

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

该令牌的载荷:

{
  "sub": "1234567890",
  "name": "John Doe",
  "iat": 1516239022
}

它的签名可以用密钥 your-256-bit-secret 验证通过。

须知

  • 解码不等于验证:载荷只是被编码,并没有加密,任何人都能读取。
  • 你的服务器必须先验证签名,才能信任任何声明。
  • 算法为 none 的令牌没有签名,所以任何人都可能伪造它。
  • 请把真实令牌当作密码对待。在这里粘贴时,尽量使用已过期的或测试用的令牌。
  • 粘贴的 JWKS 会按令牌的 kid 查找密钥,单个 JWK 则直接使用。本页面绝不会向令牌的签发者获取密钥集。
  • 比其哈希更短的 HMAC 密钥(32、48 或 64 字节)容易被猜出,因此页面会提醒你。密钥可按 UTF-8 文本或 Base64URL 读取。

什么是 JWT?

JSON Web Token 由用点连接的三段 Base64URL 组成:说明签名算法的头部、包含声明(如令牌面向谁、何时过期)的载荷,以及签名。前两段任何人都能读取;只有签名能证明令牌来自持有密钥的人。

常见问题

解码令牌就等于验证吗?

不等于。解码只是读取未加密的内容。验证是用密钥检查签名,你的服务器在信任任何声明之前必须先做这一步。

exp、nbf 和 iat 是什么意思?

exp 是令牌过期的时间,nbf 是在此之前无效的时间,iat 是签发时间,都是自 1970 年起的秒数。本工具会把它们与你设备的时钟比较。

在这里粘贴真实令牌安全吗?

令牌在你的浏览器中解码,绝不会发送到我们的服务器,本页也不显示广告。不过仍应像对待密码一样对待有效令牌:最好使用已过期或测试用的令牌。

此工具的更新日志

键盘快捷键

关闭

全局

搜索工具和操作
Ctrl K
显示此帮助
?
切换主题
Ctrl Shift L
固定所选工具(在搜索中)
Ctrl P

在工具中

将输出发送到第一个建议
Ctrl ↵
将文件打开到输入框
Ctrl O
复制输出
Ctrl Shift C
关闭搜索esc
工具Base64 编码与解码将文本编码为 Base64,或将 Base64 解码回文本,支持标准字母表和 URL 安全字母表。编码JSON 格式化与校验格式化、压缩和校验 JSON,并给出任何错误所在的确切行号和列号。格式化正则表达式测试器测试 JavaScript 正则表达式,支持实时高亮、捕获组和通俗易懂的说明。文本UUID 与 ULID 生成器批量生成 UUID v4、UUID v7 和 ULID,或粘贴一个 ID 查看其版本、变体和时间戳。生成器Unix 时间戳转换器在 Unix 时间戳与日期之间互相转换,支持任意时区,并显示 ISO 8601、RFC 2822 和相对时间。日期和时间哈希与 HMAC 生成器计算文本或文件的 MD5、SHA-1、SHA-2、SHA-3、BLAKE2、BLAKE3 和 CRC-32 哈希,并可选 HMAC。安全密码生成器与强度检测生成随机密码、密码短语和 PIN,或检查密码有多强。安全JWT 解码与验证器解码 JSON Web Token,检查有效期和声明,并用密钥或公钥验证签名。安全CIDR 与 IP 子网计算器计算 IPv4 和 IPv6 网络的范围、掩码和大小,拆分为子网,并检查谁包含或与谁重叠。网络Cron 表达式解释器用通俗语言解读 cron 表达式,查看任意时区的下几次运行时间,并整理成标准格式。日期和时间行排序按 A 到 Z、Z 到 A、自然顺序(file2 排在 file10 前)、码点、数值或长度对文本行排序。文本删除重复行从列表中删除重复行,可保留第一个或最后一个副本、忽略大小写或空格,或删除所有重复出现的行。文本比较列表和文本逐行比较两个列表:找出同时存在、只在其一或在任一列表中的行,或并排查看带标记的行差异。文本大小写转换与 slug 生成将文本转换为 camelCase、snake_case、kebab-case、Title Case 等,或把标题变成带重音处理的 URL slug。文本URL 编码、解码与解析为 URL 对文本进行百分号编码和解码,或把 URL 拆成协议、主机、路径和查询,并以表格形式编辑查询。编码IBAN、BSN、增值税验证器检查 IBAN、荷兰 BSN、信用卡号、欧盟增值税号、电子邮件、URL 或 ISBN,失败时给出原因。每行一个值。校验HTML 实体编码与解码用命名、十进制或十六进制实体为 HTML 转义文本,或把 & 和 é 等实体转回字符。编码字符串转义与反转义为 JSON 或 JavaScript 字符串、SQL 字符串、CSV 字段、正则表达式或 shell 单词转义文本,或撤销转义。编码EAN、UPC 和 GTIN 校验位校验 EAN-8、EAN-13、UPC-A 或 GTIN-14 的校验位,补上缺失的校验位,从 GS1 前缀读出国家,并在 ISBN-10 与 EAN-13 之间转换。每行一个条码。校验测试数据生成器批量生成测试用的 IBAN、BSN、EAN 条码和欧盟增值税号。能通过校验,但不属于任何人。生成器SQL 格式化与压缩把 SQL 按子句分行整理,或压缩成一行,支持 MySQL、PostgreSQL、SQLite、SQL Server 和 BigQuery。格式化进制转换器在二进制、八进制、十进制、十六进制以及 2 到 36 的任意进制之间转换,支持大数、补码和位视图。编码YAML、TOML 与 JSON 转换在 JSON、YAML 和 TOML 之间互相转换,或验证并格式化文档,每个错误都标明行和列。格式化CSV 与 JSON 转换把 CSV 转成对象或数组的 JSON 数组,或把 JSON 转回 CSV。自动识别分隔符,可读取使用分号和小数逗号的 Excel 文件。数据Glob 与 .gitignore 测试器用路径列表测试 glob 模式和 .gitignore 规则,查看哪些路径匹配以及由哪条规则匹配。文本颜色转换器在 HEX、RGB、HSL、HWB 和 OKLCH 之间转换颜色,检查它与背景的 WCAG 对比度,还能由它生成 Material 3 色调调色板。格式化chmod 计算器在八进制(755)、字母(rwxr-xr-x)、ls -l 和 chmod 子句之间转换 Unix 文件权限,带复选框网格以及 setuid、setgid、sticky 位。安全User-Agent 解析器解析 User-Agent 字符串:浏览器、引擎、操作系统、设备类型,以及是否为机器人。留空则解析你自己的浏览器。网络将 cURL 转换为代码粘贴 cURL 命令,即可得到 fetch、Axios、Python requests、Go 或 PHP 版本的同一个请求。不会执行任何内容,也不会发送任何内容。网络Markdown 预览编写 Markdown,边输入边看渲染效果,也可复制 HTML。原始 HTML 以文本显示,链接会经过检查,预览中不会运行任何内容。格式化条形码与二维码生成器生成二维码、EAN-13、UPC-A、Code 128、ITF-14 或 Data Matrix,下载为 SVG 或 PNG,也可从图片中读取条码。生成器页面更新日志每次发布的变化页面关于codeknife.dev 是什么,由谁制作页面想法提出改进建议,并为其他访客的想法投票。页面隐私离开浏览器的内容与保存的内容页面无障碍合规状态、已知限制以及如何报告问题页面会员去除广告,提高限额页面操作