# ULID / NanoID / KSUID / Snowflake 词法 ID 解码器

解码 ULID（Crockford base32）、KSUID（base62）、NanoID、MongoDB ObjectId 与 Discord/Twitter/Sonyflake 雪花 ID：拆解时间戳、随机位、机器位，展示 ISO 时间与十六进制原始值，并按生日界公式估算碰撞概率。

> 标准页面: https://elysiatools.com/zh/tools/ulid-nanoid-ksuid-snowflake-id-decoder

- **分类:** Development

- **关键词:** ULID 解码, KSUID 解码, 雪花 ID 解码, 对象 ID 解码, 词法可排序 ID, 时间戳提取, 碰撞概率

## 概述

逐位精确解码（BigInt，无浮点精度丢失）：ULID 前 10 个 Crockford base32 字符是 48 位 Unix 毫秒时间戳、后 16 字符是 80 位随机数；KSUID 前 4 字节是自纪元 2014-05-13T16:53:20Z 起的 32 位秒级时间戳、后 16 字节随机载荷；雪花 ID 按 41/5/5/12（Twitter）或 42/5/5/12（Discord）位拆分。碰撞概率按生日界近似 p ≈ 1 − e^(−n(n−1)/2^(b+1)) 计算。64 位雪花 ID 的完整位段自定义解码请配合 snowflake-discord-id-bit-decoder 工具使用。

## 输入项

- **ID 列表（每行一个）** (textarea): 01ARZ3NDEKTSV4RRFFQ69G5FAV 0ujtsYcgvSTl8PAuAdqWYSMnLOv 175928847299117063
- **格式** (select)
- **碰撞概率估算（生成数量）** (number): Number of IDs assumed generated inside one time window when estimating collision probability.

## 适用场景

- 需要从 ULID、KSUID 或雪花 ID 中提取生成时间时。
- 需要核对 NanoID、MongoDB ObjectId 或不同平台雪花 ID 的格式与字段时。
- 需要根据预估生成数量查看随机空间的碰撞概率时。

## 工作原理

- 在“ID 列表”中输入 ID，每行一个；可同时输入不同类型的值。
- 将格式设为“自动识别”，或选择 ULID、KSUID、NanoID、ObjectId、Discord、Twitter 或 Sonyflake。
- 工具使用 BigInt 进行逐位解码，避免大整数因浮点精度造成误差。
- 输入碰撞概率估算的生成数量后，工具按生日界近似公式输出碰撞概率结果。

## 使用案例

- 开发人员调试分布式系统中的可排序 ID，核对生成时间与位段组成。
- 数据工程师检查日志、数据库记录中的 ULID、KSUID、ObjectId 或雪花 ID。
- 架构师比较 NanoID、KSUID 和不同雪花方案的时间信息、熵值与碰撞风险。

## 常见问题

### 这个工具支持哪些 ID？

支持 ULID、KSUID、NanoID、MongoDB ObjectId，以及 Discord、Twitter 和 Sonyflake 雪花 ID。

### 可以一次解码多个 ID 吗？

可以，在 ID 列表中每行输入一个值；自动识别模式可处理不同格式的 ID。

### ULID 能解码出哪些内容？

ULID 的前 10 个 Crockford base32 字符对应 48 位毫秒时间戳，后 16 个字符对应 80 位随机数。

### NanoID 是否包含时间戳？

NanoID 不含时间戳。工具会校验 URL 安全字母表，并根据长度报告熵值等信息。

### 碰撞概率估算代表什么？

它根据输入的生成数量和 ID 的随机位数，使用生日界近似公式估算在一个时间窗口内发生碰撞的概率。

## 相关工具

- [NTP RFC 5905 / SNTP 闰秒与纪元解码器](https://elysiatools.com/zh/tools/ntp-rfc-5905-sntp-leap-second-epoch-decoder): 解码 NTP/SNTP 48 字节包：字节 0 位域、stratum/poll/precision、root delay/dispersion、reference ID、四个 64 位时间戳（1900 纪元）
- [Snowflake / Discord ID 位字段解码器](https://elysiatools.com/zh/tools/snowflake-discord-id-bit-decoder): 使用无损 64 位解析 Snowflake 风格 ID，提取时间戳、worker、process、sequence 或平台特有字段，并可推断 Discord shard。
- [现代唯一 ID 生成器](https://elysiatools.com/zh/tools/uid-generator): 生成现代唯一标识：ULID、NanoID、Snowflake、CUID2。可对比格式、解码 ULID 时间戳，选择适合你系统的 ID 方案。
- [JavaScript反混淆器](https://elysiatools.com/zh/tools/javascript-deobfuscator): 反混淆和分析混淆的JavaScript代码，提高可读性和理解性
- [Avro转换器](https://elysiatools.com/zh/tools/avro-converter): 将数据编码/解码为Avro数据序列化格式，支持schema
- [Base32转换器](https://elysiatools.com/zh/tools/base32-converter): 将文本编码/解码为Base32格式，支持多种变体
- [Base58转换器](https://elysiatools.com/zh/tools/base58-converter): 将文本编码/解码为Base58格式，支持比特币和瑞波币变体
- [Base62转换器](https://elysiatools.com/zh/tools/base62-converter): 将文本编码/解码为Base62格式（0-9, A-Z, a-z）

## 示例

- [Android Java 图像处理示例](https://elysiatools.com/zh/samples/android-image-processing-java): Android Java 图像处理示例，包括图像读取保存、缩放和格式转换
- [Android Kotlin 图像处理示例](https://elysiatools.com/zh/samples/android-image-processing-kotlin): Android Kotlin 图像处理示例，包括图像读取保存、缩放和格式转换
- [Web Python 图像处理示例](https://elysiatools.com/zh/samples/web-image-processing-python): Web Python 图像处理示例，使用 PIL/Pillow 包括读取、保存、缩放和格式转换
- [Web Rust 图像处理示例](https://elysiatools.com/zh/samples/web-image-processing-rust): Web Rust 图像处理示例，包括图像读取保存、缩放和格式转换

## 相关内容

- [文本脱敏、高亮与展示格式化工具](https://elysiatools.com/zh/hubs/text-format): 在一个专题中比较文本脱敏、PII 检测、电话号码规范化、重点高亮、居中排版和 diff 格式化工具。
- [JSON 格式化、对比与规范化工具](https://elysiatools.com/zh/hubs/json-format): 在一个专题中比较 JSON 格式化、差异对比、日志审查、配置比较和数据规范化工具，适合需要让 JSON 更易读、更易审查的流程。
- [代码与标记压缩、美化与格式化工具](https://elysiatools.com/zh/hubs/code-minify-beautify-format-tools): 在一个 hub 里压缩与美化 CSS、HTML、JavaScript、JSON、SQL、XML、YAML、TOML、SVG 与 VBA，检查 Markdown 与邮件 HTML，并跨语言格式化代码，服务于生产打包与代码评审。
