选一个工具,粘贴就能用
不需要注册、不需要密钥,也不需要先懂原理。下面的结果都是即时生成的。
粘贴一个 JWT,逐条看它的安全隐患
前端解出 header 与 payload,再按 5 条预设规则扫描,命中项给出中文解释和风险等级。
会逐条检查这 5 项 静态规则 · 本地执行
- alg 是否为 none 严重
- 是否缺少过期时间 exp 高
- token 是否已过期 高
- payload 是否含敏感字段 高
- 是否缺少标准声明 中
命中项按「严重 / 高 / 中」着色并附中文解释,未命中的显示「通过」。
逐条规则检查
解码内容 点击标题可折叠
说明:JWT 的 header 与 payload 只是 Base64URL 编码,本质是公开可读的明文;签名部分本工具只做展示,不做校验。以上规则是静态启发式检查,不能替代服务端校验、密钥管理与真实的安全审计。
这串「乱码」其实谁都能看懂
工具会先判断它像不像 Base64,再把原文和还原后的明文并排放在一起,让你亲眼看到转换过程。
怎么判断「像不像 Base64」 启发式识别
- 只含 A–Z a–z 0–9 + / =(及 - _)
- 长度是 4 的倍数或接近
- 解码后是可打印文本
不追求 100% 准确:短字符串、恰好只由这些字符组成的普通文字都可能被误判。
关于 Base64 和 JWT,最常被问到的几件事
用大白话回答,不堆术语。
Base64 是加密吗?
不是,一点关系都没有。加密需要密钥,没有密钥就看不懂原文;Base64 只是把同一份数据换了一种公开的文字写法,规则人人都知道。它的用途是让图片、中文、二进制数据能安全地通过「只处理文本」的系统,这里的「安全」指传输时不损坏,不是保密。把 Base64 当成加密,是最常见也最危险的一个误解。
Base64 能破解吗?需要密钥吗?
不需要「破解」,因为本来就没有锁。也不需要密钥、不需要字典、不需要算力,只要把字符串按标准规则反向转换一次就得到明文,本页的解码框就是干这个的。所以看到以 = 结尾、由字母数字和 + / 组成的长串,别指望它是密文。
Base64 安全吗?能用来存密码或身份证号吗?
不能。Base64 编码后的内容仍然是明文,任何拿到字符串的人都能立刻还原出密码、身份证号、手机号等敏感信息。密码应该加盐哈希后存储,敏感数据需要真正的加密与访问控制,传输还应走 HTTPS。Base64 顶多算一种「写法」,不提供任何机密性。
为什么有些 Base64 末尾有 = 号?
因为 Base64 要求输出长度是 4 的倍数,原始数据字节数不够整除时,就用 = 补位。它只是填充符号,不是密码的一部分。另外在网址和 JWT 里常见的是 Base64URL 变体:把 + 换成 -、/ 换成 _,并常常省略末尾的 =,本页两种都能处理。
JWT 里的信息别人能看到吗?
能。JWT 的 header 和 payload 只是 Base64URL 编码,任何人都能解码看到里面的用户 ID、角色、过期时间等全部内容。签名的作用只是防止内容被篡改,并不能防止被读取。所以绝不要把密码、密钥、身份证号塞进 payload。本工具的「敏感字段」检查就是帮你发现这类问题。
alg 为 none 到底危险在哪?
alg: none 表示这个 token 不需要签名。如果服务端实现有缺陷、真的按 header 里的算法去校验,攻击者就能把 payload 改成任意身份(比如把角色改成 admin)再直接提交,完全不需要知道密钥。正规服务端应当明确白名单允许的算法,并拒绝 none。本页只是静态提醒,不会替你验证签名。
这个工具会把我粘贴的 Token 上传吗?
不会。整站只有静态 HTML 和 JavaScript,没有后端接口、没有数据库、没有埋点上报;解码用的 atob / TextDecoder 都是浏览器内置能力。你甚至可以把文件下载到本地、断网后直接打开使用。不过仍建议不要在任何网页里粘贴真实生产环境的凭据。
扫描结果说「通过」,是不是就安全了?
不是。这里的 5 条规则只做静态检查,覆盖不了签名是否有效、密钥强度、算法混淆、服务端是否正确校验 iss/aud/exp、传输是否走 HTTPS 等关键问题。请把结果当作一份快速自查清单,而不是安全结论;生产环境的鉴权判断必须由服务端完成。