开发者工具箱
六个纯前端开发者小工具:Base64、JWT 解码、文本哈希、时间戳、Cron 解释、URL 编码。本地处理 · 输入不上传
可用操作
Base64 文本编解码
按 UTF-8 字节把文本编码为标准 Base64 或 base64url,或严格解码回文本。中文与 emoji 完整往返;非法字符、错误填充、非规范尾比特与非法 UTF-8 都会明确报错。
JWT 解码查看
把三段 JWT 的 header 与 payload 做 Base64URL + JSON 解码查看,并把 iat/exp/nbf 标成 UTC 时间。**解码不验证签名**,永不标为签名有效;损坏段或非 JSON 段会明确记录。
文本哈希(MD5 / SHA-1 / SHA-256)
用纯 JS 真实计算 MD5、SHA-1、SHA-256 十六进制摘要,输入按 UTF-8。固定向量在测试中同时与 node:crypto 与字面量比对;浏览器与 Node 共用同一份代码。
Unix 时间戳转换
在 Unix 秒、毫秒与带时区的 ISO 时间之间转换,明确标注 0 时刻、秒/毫秒单位与 UTC(Z)/所选时区,避免把本地时间误当 UTC。
Cron 表达式解释
按严格 5 段 Vixie cron(分 时 日 月 周)解析并展开每一段,给出指定起点后最多 20 次 UTC 匹配。越界值、错误段数、宏与非法步长都有明确结果;绝不注册任何实际定时任务。
URL 编码与解码
明确区分 encodeURI(保留 URL 结构)与 encodeURIComponent(转义结构字符),另提供 application/x-www-form-urlencoded 表单编码;只有表单解码把 + 当空格,%2B 永远保留为加号。
真实示例与限制
输入默认上限 1 MiB(按 UTF-8 字节计),并按操作缩小:Base64 / 哈希 / URL 编码 1 MiB,JWT 64 KiB,时间戳 256 字节,Cron 2 KiB。超限会报 INPUT_TOO_LARGE 并保留输入。JWT 只解码不验签;MD5/SHA-1 不抗碰撞,不能用于安全签名;Cron 只解释不调度;时间戳以 Z 标注 UTC。所有计算在浏览器内完成,无网络请求、无 eval、无密钥、默认不保存正文。
FAQ
我的输入会上传到服务器吗?
不会。六个操作都是纯函数,在浏览器里对字符串做计算,源码中没有 fetch / apiFetch 调用,也没有 eval。JWT、密码类样例不写入统计、URL 或日志。
JWT 工具能验证签名吗?
绝对不能,也从不会标为「签名有效」。它只做 Base64URL + JSON 解码查看 header 与 payload;结果固定写有「解码不验证签名 / Decode only — signature is NOT verified」以及 signatureVerification=NOT_PERFORMED。即使令牌看起来完整,也不代表可信。
为什么哈希不调用 WebCrypto?
为了浏览器与 Node 共用同一份代码并支持 MD5 / SHA-1,本站用纯 JS 实现三种摘要,测试同时与 node:crypto 和固定向量逐字比对。若只需要 SHA-256 且平台支持 WebCrypto,可在后续版本替换为 crypto.subtle,但本轮未做该替换,也未在浏览器实测。
Cron 会创建定时任务吗?
不会。源码不含 setTimeout / setInterval / Worker / crontab 调用,也不请求任何服务端调度接口;只做严格 5 段解析与最多 366 天内的 UTC 匹配推算。
输入默认会保存吗?
不会。默认不保存正文;如后续启用草稿,只会用 al:dev:v1:<purpose> 命名空间,并只清理本站自己的键。Service Worker 默认关闭。
能否离线使用?
构建产物是纯静态 HTML/CSS/ESM,无第三方运行时依赖,逻辑不需要网络。本轮没有浏览器二进制,因此离线行为和 390/768/1440 宽度均未实测,需要在有浏览器的环境验收。