
生成 ULID
为现代应用程序提供快速、高效和可排序的标识符
所有数据都保留在您的浏览器中。不会发送到服务器。
100% Client-SideCSPRNG Verified (crypto.getRandomValues)Zero Server Logs
No ULID generated yet
Options
元数据嵌入
将 userId / tenantId 嵌入到 ULID 的 80 位随机数中
关闭
结构预设 (SCHEMA)
位容量预算0 / 60 位已使用 · 随机熵: 16 字符
ULID 结构直观预览
时间戳嵌入元数据随机熵
本地历史记录 (离线保存)
隐私安全:100% 客户端处理,零服务器记录。
暂无生成的 ID
您生成的 ID 将自动显示在这里。
已复制!
ULID 与 UUID 比较
为什么在许多情况下 ULID 比 UUID 更好?
ULID
推荐时间可排序
前 10 个字符编码毫秒时间戳,因此按时间排序
Crockford 的 Base32
更高效的编码,不区分大小写,没有特殊字符
单调递增选项
可以为相同时间戳生成单调递增的值
人类可读
在日志和数据库中更容易调试和阅读
ULID 示例:
01ARZ3NDEKTSV4RRFFQ69G5FAV
UUID
UUID v4 没有时间顺序
随机 UUID v4 不带时间戳。UUID v7 带
十六进制编码
效率较低,相同信息需要更多字符
无单调性
没有内置机制用于单调递增值
可读性较差
在日志和数据库中更难区分和识别
UUID 示例:
123e4567-e89b-12d3-a456-426614174000
性能比较
生成速度 (越高越好)ULID 最快
ULID
~2.5M/sec
UUIDv4
~1.7M/sec
UUIDv7
~1.4M/sec
字符串长度 (越短越整洁)ULID 更紧凑 27%
ULID
26 chars
UUIDv4
36 chars
UUIDv7
36 chars
数据库写入性能 (按时间排序的索引效率)ULID 和 UUIDv7 防止页面分裂
ULID
0% Frag
UUIDv7
0% Frag
UUIDv4
98% Frag
代码示例
以下是一些代码示例,帮助您开始
ulid_examples.sh
JavaScript
// Node.js / 浏览器
// 安装: npm install @ulid/javascript
import { ulid } from '@ulid/javascript';
// 生成新的 ULID
const myUlid = ulid(); // "01F8MECHZX3TBDSZ7XR8H8J1R4"
// 使用自定义时间戳创建 ULID (毫秒)
const customTimestamp = 1616239022000;
const ulidWithCustomTime = ulid(customTimestamp);
// 创建单调递增的 ULID (用于同一毫秒内的多个 ID)
import { monotonicFactory } from '@ulid/javascript';
const monotonic = monotonicFactory();
const ulid1 = monotonic(); // "01F8MECHZX3TBDSZ7XR8H8J1R4"
const ulid2 = monotonic(); // "01F8MECHZX3TBDSZ7XR8H8J1R5" (递增)
// 从 ULID 提取时间戳
const timestamp = ulid.decode(myUlid).time;
console.log(new Date(timestamp).toISOString());JavaScript:npm install @ulid/javascript
