编码与进制
时间戳 ⇄ 日期
位数自动判断:绝对值 ≥ 1e12 当毫秒,其余当秒。「本地时间」按你浏览器的时区解释,「UTC」那行才是零时区;ISO 8601 带时区偏移,接口里最常见的就是它。
进制互转
内部走 BigInt,多长的整数都不掉精度——雪花 ID、64 位时间戳放心粘。「自动辨认」优先看 0x / 0b / 0o 前缀,纯数字当十进制,只用 0–9a–f 的当十六进制,剩下的按三十六进制。
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 字节
这些摘要各自的位置(点开看)
| 算法 | 长度 | 现在该不该用 |
|---|---|---|
| MD5 | 128 bit / 32 位十六进制 | 只做查重、校验老下载包,碰撞早就被打通了 |
| SHA-1 | 160 bit / 40 | 浏览器还留着它,但新场景别选 |
| SHA-256 | 256 bit / 64 | 日常默认选项 |
| SHA-384 / 512 | 384 / 512 bit | 要长就 512,384 基本只在证书里见到 |
MD5 是这里唯一手写的(WebCrypto 不提供),其余四个来自浏览器自带的 crypto.subtle。后者需要安全上下文:https 或 localhost 打开才有,用 file:// 直接双击打开的话只有 MD5 能用。
JWT 拆开看
Base64url 解开就完事,载荷本来就没有加密,谁都能读——所以别往里塞密码。验签只支持 HS256 / HS384 / HS512 这三种对称签名,RS / ES 系列要公钥,本页不做。