跳到主要内容

ULID 生成器:可排序唯一 ID + 时间戳解码

可排序、URL 安全的唯一 ID:批量生成、单调递增模式、还能反解出生成时间戳,全程浏览器本地

  • 本地处理
  • 分类 开发运维
  • 适合 格式化、校验、压缩或检查和代码相关的文本。
ULID 是 26 位 Crockford Base32:前 10 位是毫秒时间戳,后 16 位是随机数。把字符串按字典序排,就是按时间排。
生成数量
单调递增
转小写

同一毫秒内也严格升序,适合做有序主键。

生成结果
点击"生成"即可批量产出 ULID。
解码 ULID

解出的时间会显示在这里。

这个工具能做什么

在浏览器里生成 ULID:26 位、按字典序可排序、URL 安全的唯一 ID。 给后端和全栈开发者挑主键方案用:既要全局唯一,又想直接 ORDER BY id 就拿到时间顺序,UUIDv4 做不到的这件事 ULID 能做到。一个 ULID 把 48 位毫秒时间戳放进前 10 位 Crockford Base32 字符,把 80 位随机放进 后 16 位,所以把这堆 ID 当字符串排序,就等于按生成时间排序,不用再单 建一个 created_at 列。一次生成 1 到 100 个;打开单调递增模式,哪怕几 个 ID 落在同一毫秒也严格升序;可转小写,可复制单个或全部。内置解码器 接受任意 ULID,把时间戳还原成毫秒数加上可读的 UTC 与本地时间,并校验 Crockford 字母表(不含 I、L、O、U),填错一位立刻报错。随机数走 crypto.getRandomValues,不上传任何内容。

工具细节

输入
文本 + 数值
页面会根据工具类型展示文本框、数值控件、文件选择或结构化输入。
输出
即时结果 + 复制 + 下载
结果区优先给出可操作结果,支持项会显示复制、下载或可视化预览。
隐私
浏览器本地处理
主工具逻辑未发现外部 API 调用,输入通常留在当前标签页内处理。
保存 / 分享
可分享链接状态
关键设置会进入 URL,复制链接后别人能复现同一组参数。
性能预算
首屏 JS ≤ 9 KB
没有声明 WASM 依赖,适合快速打开和移动端使用。
适用场景
开发运维 · 程序员
分类和职业标签用于推荐相关工具、组织内链,并帮助用户快速判断是否适合当前任务。

怎么用

  1. 1. 输入

    把内容粘贴或拖入工具面板。

  2. 2. 处理

    点击按钮,在浏览器内本地处理,文件不上传。

  3. 3. 复制 / 下载

    一键复制结果或下载到本地。

ULID 生成器 适合怎么用

适合穿插在写代码、查问题、做 Review、上线前的小任务里。

适合开发场景

  • 格式化、校验、压缩或检查和代码相关的文本。
  • 把片段整理好再放进文档、工单、提交或交接材料。
  • 不切换工具,快速检查一个小 payload。

开发检查项

  • 压缩、混淆这类不可逆处理,先对副本操作。
  • 除非确认工具本地处理,不要粘贴密钥和敏感片段。
  • 转换后的代码上线前,仍要跑自己的测试或 lint。

下一步可以接着做

这些入口会把当前任务接到更完整的工具链里。

  1. 1 JWT 解码器 解码 JWT 的 Header / Payload / Signature,看声明、查过期、复制字段,全程浏览器本地 打开
  2. 2 文件哈希计算器 在浏览器本地为上传文件计算 SHA-1、SHA-256、SHA-384 或 SHA-512。 打开
  3. 3 UUID 生成器 支持 v4 随机、v7 时序、NIL 全零、Short 短码四种格式,批量生成,纯浏览器运行。 打开

真实使用场景

  • 选一个能按插入时间排序的主键

    给新建的 Postgres 表选 ID,又不想为"取最新几行"额外 ORDER BY created_at。把 UUIDv4 换成 ULID:ID 列上的 B-tree 索引大致保持时间 有序,插入集中在索引右端而不是四处散落,"给我最新 50 行"就是 ORDER BY id DESC LIMIT 50。先在这里生成几个,定列类型前先看清格式。

  • 做只追加的事件日志或 outbox

    outbox 表或事件流需要的键既要唯一,又要让事件保持发生顺序。打开 单调模式,每个 ULID 都严格大于上一个,哪怕一毫秒内每秒插几千条 也成立。消费者按 ORDER BY id 读,就能完全照生产者写入的顺序回放。

  • 从日志里的 ULID 反查发生时间

    工单里贴了个记录 ID,比如 01HN8X...,你想不查库就知道它什么时候 建的。粘进解码器,读出精确到毫秒的时间和对应 UTC。不用碰 schema、 不用查 created_at,时间就写在 ID 里。

  • 给测试夹具灌入真实且有序的 ID

    写依赖顺序的集成测试?生成一批单调 ULID 放进夹具,"最新优先"这类 断言就能稳定通过。点全部复制,直接粘到 seed 文件或 JSON 夹具里。

常见踩坑

  • 把 ULID 的随机部分当安全令牌用。80 位随机让碰撞几乎不可能,但时间那一半是完全可读的。ULID 是标识符不是密钥,别拿它当会话 token、密码重置码,或任何必须整体不可猜的东西。

  • 高频插入时忘了开单调模式。同一毫秒生成很多 ID 又没开它,顺序就是随机的,突发流量下"按 ID 排序"会悄悄失准。只要插入顺序必须等于 ID 顺序,就把单调开上。

  • 手写或用错字母表的正则校验 ULID。Crockford Base32 不含 I、L、O、U,放行整个 A–Z 的校验会把畸形 ID 当合法。要按那 32 个字符的精确集合去解码或校验,本工具就是这么做的。

隐私说明

每个 ULID 都在你的浏览器标签页里生成。80 位随机来自 crypto.getRandomValues,和系统生成密钥用的是同一套加密随机源,不是 Math.random,也不会离开页面。解码器同样全程在本地跑,你粘进来查看 时间戳的 ULID 不会被记录或上传。只有设置(数量、单调和小写开关)会写 进可分享的网址;生成的 ID 本身每次点击都重新随机,始终留在本地。

常见问题

类似工具组合

做你这行的人, 还会一起用这些。

Made by Toolora · 100% client-side · Updated 2026-07-02