工具箱

编码与进制

时间戳 ⇄ 日期

位数自动判断:绝对值 ≥ 1e12 当毫秒,其余当秒。「本地时间」按你浏览器的时区解释,「UTC」那行才是零时区;ISO 8601 带时区偏移,接口里最常见的就是它。

进制互转

内部走 BigInt,多长的整数都不掉精度——雪花 ID、64 位时间戳放心粘。「自动辨认」优先看 0x / 0b / 0o 前缀,纯数字当十进制,只用 0–9a–f 的当十六进制,剩下的按三十六进制。

Base64

拖个文件进来 → data: URL 图片会就地预览,顺带告诉你它的 MIME 和 Base64 长度。
文件只在你浏览器里读,不上传。

中文按 UTF-8 字节再编码,所以不会变成一串问号;解出来的字节也按 UTF-8 读回。要塞进 CSS / srcdoc 的那种 data URL,用下面拖文件那条路更省事。

URL 编解码

顺手拆一条链接

三种编码口径别混:拼 query 参数用第一种(空格转 %20);整条 URL 直接放进地址栏用第二种;老式 application/x-www-form-urlencoded 是第三种,空格写成 +,且 ~ ! ' ( ) 也要转义。

Unicode / HTML / 字符串转义

\uXXXX 只处理非 ASCII,可见字符原样留着;实体还原走浏览器的解析器,命名实体(&)、十进制(&)、十六进制(&)都认。JS 字面量那一档会把换行、制表、引号、反斜杠一起转掉。

乱码急救

原理:乱码是「字节没错、解码选错了」。所以先把你现在看到的字符按 Latin-1 / CP1252 还原成原始字节,再换成正确的编码读一遍。如果原文里已经出现 U+FFFD 这种替换符(看着像 ),说明字节已经被替换掉了,信息丢了,神仙也修不回来——那就回去改数据源的编码,别在这修。

摘要 / 哈希

当前输入:文本 3 字节

这些摘要各自的位置(点开看)
算法长度现在该不该用
MD5128 bit / 32 位十六进制只做查重、校验老下载包,碰撞早就被打通了
SHA-1160 bit / 40浏览器还留着它,但新场景别选
SHA-256256 bit / 64日常默认选项
SHA-384 / 512384 / 512 bit要长就 512,384 基本只在证书里见到

MD5 是这里唯一手写的(WebCrypto 不提供),其余四个来自浏览器自带的 crypto.subtle。后者需要安全上下文:https 或 localhost 打开才有,用 file:// 直接双击打开的话只有 MD5 能用。

JWT 拆开看

Base64url 解开就完事,载荷本来就没有加密,谁都能读——所以别往里塞密码。验签只支持 HS256 / HS384 / HS512 这三种对称签名,RS / ES 系列要公钥,本页不做。