在线 ULID 生成器

在你的浏览器中生成可排序的 ULID、解码其中内嵌的时间戳,并在 ULID 与 UUID 之间转换。不上传任何内容。

这款 ULID 生成器完全在你的浏览器中运行。随机性来自 Web Crypto API,你生成、解码或转换的 ULID 绝不会离开你的设备,也不会到达 ArrayKit。

打开 UUID 生成器

关于 ULID 生成器

这款 ULID 生成器可创建 ULID——一种按字典序可排序的标识符,它把一个 48 位的毫秒时间戳和 80 位的随机性打包进一个紧凑的 26 字符 Crockford base32 字符串中。你可以生成单个 ULID 或成百上千的一批,切换单调模式让在同一毫秒内生成的 ID 仍按创建顺序排序,并按你数据库偏好的格式切换大小写。解码模式则相反:粘贴任意 ULID,即可读回精确的创建时间,以纪元毫秒和一个 ISO-8601 时间戳呈现。内置的转换器可把一个 ULID 转换为它等价的 128 位 UUID 并转换回来,不丢失一个比特。当你需要按时间排序的数据库键、日志关联 ID,或一个 UUID 的替代方案时,它都很有用。随机字节来自你浏览器的 Web Crypto API,每个 ULID 都在你的设备上构建,因此你生成的任何内容都绝不会发送到服务器。

功能特性

如何使用 ULID 生成器

  1. 保持选中生成标签页,并设置你需要多少个 ULID
  2. 为按时间排序的键开启「单调」,或关闭以获得独立的随机后缀
  3. 从输出框复制这个 ULID 或整批
  4. 切换到「解码」读取一个 ULID 的时间戳,或用「ULID 转 UUID」进行转换

示例

输入

01ARZ3NDEKTSV4RRFFQ69G5FAV

输出

timestamp: 1469922850259 (2016-07-30T23:54:10.259Z)
uuid: 01563e3a-b5d3-d676-4c61-efb99302bd5b

前 10 个字符解码为创建时间;全部 128 位映射到一个 UUID。

常见错误与故障排除

常见问题

什么是 ULID,它与 UUID 有何不同?
ULID 是一个 128 位的标识符,写作 26 个 Crockford base32 字符。与随机的 UUIDv4 不同,它的前导位是一个毫秒时间戳,因此 ULID 作为纯文本就能按创建顺序排序,同时仍全局唯一。
单调 ULID 生成是如何工作的?
当在同一毫秒内生成多个 ULID 时,单调模式会复用那一毫秒的随机字段,并为每个新 ID 在其基础上加一,而不是抽取新的随机性。这保证了每个 ULID 都严格大于前一个。
我可以从一个 ULID 恢复出创建时间吗?
可以。前 10 个字符编码了一个 48 位的毫秒时间戳。把一个 ULID 粘贴进解码模式,本工具会显示精确的纪元毫秒值以及匹配的 ISO-8601 日期和时间。
ULID 转 UUID 的转换可逆吗?
可逆。一个 ULID 和一个 UUID 都持有 128 位,因此转换器会把每一位无损地映射过去。把一个 ULID 转换为 UUID 再转换回来,你会精确地得到原来的 ULID。
为什么字母表跳过 I、L、O 和 U?
ULID 使用 Crockford base32,它省略了 I、L、O 和 U,让 ID 易读且难以打错。为方便起见,解码时本工具仍会把 I 和 L 当作 1、把 O 当作 0 接受。
我在这里生成的 ULID 是私密的吗?
是的。每个 ULID 都在你的浏览器中构建,随机性来自 Web Crypto API。你生成、解码或转换的 ID 绝不会发送到 ArrayKit 或任何服务器。

相关工具

全部 ArrayKit 工具