ULID 解码器 (时间戳与随机数)
开发
ULID 是一个 26 字符、可按字典序排序的标识符:前 10 个字符是 48 位毫秒时间戳,后 16 个字符是 80 位随机数,全部采用 Crockford Base32。由于时间位于高位,ULID 按创建顺序排序 — 这正是人们用它替代随机 UUID 的原因。本解码器将 ULID 拆开:读取时间戳并以 ISO UTC、相对「x 前」与原始纪元毫秒显示,并以 Crockford Base32 和 hex 两种形式显示随机部分。解码不区分大小写,并宽容处理经典的 Crockford 易混字符 — I 与 L 读作 1,O 读作 0 — 同时校验长度、字母表,以及时间戳不超过 48 位(首字符必须为 0–7)。全部在本地运行;不上传任何内容。
—
标准形01ARZ3NDEKTSV4RRFFQ69G5FAV
时间戳 (UTC)2016-07-30T23:54:10.259Z
相对9y 11mo前
纪元 ms1469922850259
随机数 (Base32)TSV4RRFFQ69G5FAV
随机数 (hex)0xd6764c61efb99302bd5b
前 10 字符 = 48 位 ms 时间戳,后 16 字符 = 80 位随机数。Crockford Base32:I/L→1,O→0,不区分大小写。
使用方法
- 粘贴一个 ULID(26 字符,如 01ARZ3NDEKTSV4RRFFQ69G5FAV)。
- 查看创建时间戳(UTC、相对与纪元 ms)。
- 按需以 Crockford 或 hex 复制时间戳或随机数。
常见问题
- ULID 如何编码时间?
- 前 10 个 Crockford Base32 字符保存自 Unix 纪元(1970-01-01)以来的 48 位毫秒计数。48 位可覆盖到公元 10889 年,故首字符只能为 0–7;更大会溢出并被判为无效。其余 16 个字符为 80 位随机数。
- 为何解码不区分大小写?
- ULID 使用为人友好的 Crockford Base32:不区分大小写,并把视觉上易混的 I、L 当作 1,O 当作 0。本工具在解码前对其归一化,因此用小写输入或用 O 代替 0 仍能正确解码。
- ULID 与 UUID 有何不同?
- 二者都是 128 位 ID,但 ULID 编码为 26 个可排序的 Base32 字符且时间戳在高位,因此 ULID 列表本身即按创建顺序。随机 UUID(v4)不含时间,无法有意义地排序;UUID v7 是标准对同一需求的答案,那些请用 UUID 检查器。
- 时间戳精确吗?
- 精确 — 毫秒时间戳直接存储在 ULID 中,因此只要生成器时钟正确,创建时间精确到毫秒。相对时间是相对于你设备的当前时钟计算的。
相关工具
Base64 与十六进制互转
在浏览器中将 Base64 字符串转换为十六进制字节,并将十六进制转换回 Base64,支持 URL-safe。
开发00
Quoted-Printable 编码与解码
将文本编码为 MIME Quoted-Printable(RFC 2045)或解码 — 处理 =XX 转义、软换行与 UTF-8 — 全部在浏览器内完成,编码时按 76 字符换行。
开发00
哈希生成器 (SHA)
根据文本生成 SHA-1、SHA-256、SHA-384 和 SHA-512 哈希。
开发00
URL 编码 / 解码
将文本按百分号编码用于网址,或将编码的网址解码为文本。
开发00
Base64 编码 / 解码
即时将文本编码为 Base64,或将 Base64 解码为文本。
开发00
JSON 格式化与校验工具
在浏览器中格式化、美化、压缩并校验 JSON。
开发00