# 现代唯一 ID 生成器

生成现代唯一标识：ULID、NanoID、Snowflake、CUID2。可对比格式、解码 ULID 时间戳，选择适合你系统的 ID 方案。

> 标准页面: https://elysiatools.com/zh/tools/uid-generator

- **分类:** Generator

- **关键词:** ulid, nanoid, snowflake, cuid2, 唯一标识, id, 可排序 id, 分布式 id

## 概述

现代唯一 ID 生成器是一款多功能的在线标识符生成与解析工具，支持 ULID、NanoID、Snowflake 和 CUID2 等主流格式。您不仅可以根据业务需求自定义生成数量、ID 长度或分布式节点参数，还能直接输入并解码已有的 ULID，快速提取其内置的时间戳信息，帮助您轻松对比并选择最适合系统架构的 ID 方案。

## 输入项

- **ID 格式** (select)
- **生成数量** (number): Number of IDs to generate (1-500)
- **长度（NanoID / CUID2）** (number): ID length for NanoID and CUID2. Ignored for ULID/Snowflake.
- **工作节点 ID（Snowflake）** (number): Machine/worker id within the datacenter (Snowflake only).
- **数据中心 ID（Snowflake）** (number): Datacenter id for distributed deployments (Snowflake only).
- **自定义纪元（Snowflake，毫秒）** (number): Base epoch in ms. Defaults to Twitter epoch (1288834974657). Snowflake only.
- **解码 ULID（可选）** (text): When filled, the tool decodes this ULID and ignores other options.

## 适用场景

- 需要为分布式系统、数据库主键或前端组件生成高防碰撞且格式现代的唯一标识符时。
- 需要模拟或生成特定分布式环境下的 Snowflake ID，并自定义工作节点、数据中心 ID 及纪元时间时。
- 需要快速解析已有的 ULID 字符串，以提取并查看其精确的生成时间戳时。

## 工作原理

- 选择所需的 ID 格式（如 ULID、NanoID、Snowflake 或 CUID2）并设置需要生成的数量。
- 根据所选格式配置相应参数，如 NanoID/CUID2 的长度，或 Snowflake 的工作节点 ID、数据中心 ID 及自定义纪元。
- 如果需要解析 ULID，直接在解码框中输入已有的 ULID 字符串，系统将自动提取其时间戳。
- 点击生成或解析，系统将即时输出对应的唯一 ID 列表或解码后的详细时间信息。

## 使用案例

- 数据库主键设计：生成按时间排序的 ULID，以优化数据库索引性能并避免 B-Tree 索引分裂。
- 分布式系统调试：模拟特定工作节点和数据中心的 Snowflake ID，用于排查分布式环境下的 ID 冲突或排序问题。
- 前端资源命名：生成指定长度的 NanoID 或 CUID2，作为网页元素、临时文件或 API 请求的防碰撞安全标识符。

## 常见问题

### 这个工具支持生成哪些类型的 ID？

支持 ULID、NanoID、Snowflake 和 CUID2 四种现代主流的唯一标识符格式。

### 如何解码已有的 ULID？

在“解码 ULID”输入框中粘贴您要解析的 ULID 字符串，工具将直接提取并显示该 ID 包含的精确时间戳。

### 生成 Snowflake ID 时可以自定义哪些参数？

您可以自定义工作节点 ID（0-1023）、数据中心 ID（0-31）以及自定义纪元（毫秒级时间戳）。

### NanoID 和 CUID2 的长度可以自定义吗？

可以，您可以通过“长度”选项设置 4 到 100 之间的任意数值，NanoID 默认长度为 21，CUID2 默认长度为 24。

### 一次最多可以生成多少个 ID？

单次最多支持批量生成 500 个唯一标识符。

## 相关工具

- [JavaScript反混淆器](https://elysiatools.com/zh/tools/javascript-deobfuscator): 反混淆和分析混淆的JavaScript代码，提高可读性和理解性
- [UUID验证器](https://elysiatools.com/zh/tools/uuid-validator): 验证UUID格式，检测版本，分析UUID结构包括变体、时间戳和节点信息
- [UUID 生成器](https://elysiatools.com/zh/tools/uuid-generator): 生成 UUID（v1、v4、v5）
- [ICCID生成器](https://elysiatools.com/zh/tools/iccid-generator): 生成具有正确Luhn校验和的有效SIM卡ICCID号码
- [图像自定义矩阵](https://elysiatools.com/zh/tools/image-custom-matrix): 应用自定义2x2变换矩阵到图像，输入任意四个矩阵值创建独特的变换，适合学习线性代数和图像处理
- [Luhn 校验码计算器](https://elysiatools.com/zh/tools/luhn-checksum): 使用 Luhn 算法（模 10）校验或生成数字。适用于信用卡、IMEI、IMEISV、SIN、NPI 及任何基于 Luhn 的自定义标识号。
- [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。

## 示例

- [K6 现代性能测试工具](https://elysiatools.com/zh/samples/k6-performance-testing): 全面的 K6 性能测试示例，包括负载测试、压力测试、API性能测试和现代应用程序的高级测试模式
- [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 包括读取、保存、缩放和格式转换

## 相关内容

- [文本脱敏、高亮与展示格式化工具](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，并跨语言格式化代码，服务于生产打包与代码评审。
