Nano ID 生成器 在线工具
在浏览器本地生成 URL 安全、抗碰撞的 Nano ID,支持自定义长度和字符表。
Nano ID 生成器完全在你的浏览器中运行。每个 ID 都通过 Web Crypto API 在本地生成,不会上传任何内容到 ArrayKit。
打开 UUID 生成器
关于 Nano ID
Nano ID 生成器使用与热门 nanoid 库相同的拒绝采样算法,创建简短、URL 安全、抗碰撞的唯一标识符。默认情况下,它会从一个 64 个字符的 URL 安全字符表中生成一个 21 位的 ID,在约三分之一的长度下提供与 UUID 相当的抗碰撞能力。你可以调大或调小长度、一次性批量生成多个 ID,也可以使用自定义字符表——例如仅使用数字,或使用不区分大小写的字符集以便在电话中朗读 ID。它适用于数据库主键、会话令牌、短链接 slug,以及任何觉得 UUID 太长的场景。一切都在浏览器本地运行,在你决定使用之前,没有任何 ID 会被发送到服务器。
功能特性
- 使用默认的 21 位长度、64 字符字符表生成 URL 安全的 Nano ID
- 每个 ID 的长度可在 2 到 128 个字符之间调整
- 一键批量生成最多 500 个 Nano ID
- 支持自定义字符表——可将输出限制为数字、十六进制或任意字符集
- 无偏拒绝采样,避免了朴素随机索引生成器的取模偏差
- 每行一个 ID,可直接复制粘贴到代码、表格或迁移脚本中
- 每个 ID 都使用浏览器的加密安全随机数生成器
- 完全在你的设备上运行——任何 ID 都不会发送到服务器
如何使用 Nano ID
- 设置 ID 长度(默认 21)以及需要生成的数量
- 如有需要,可将字符表替换为你自己的字符集
- 点击 Generate,通过浏览器的加密 RNG 生成新的 ID
- 复制列表,或再次点击 Generate 生成新一批
示例
输入
size = 21
输出
V1StGXR8_Z5jdHi6B-myT
使用默认的 64 字符 URL 安全字符表生成的 21 位 Nano ID。
常见错误与故障排除
- 自定义字符表字段被拒绝或报错。 — Nano ID 生成器要求字符表中至少包含 2 个不重复的字符;重复字符会在生成前自动去除。
- 使用较短的自定义字符表生成的 ID,输入时感觉比预期更长。 — 更小的字符表需要更多字符才能达到相同的抗碰撞能力——在限制字符表(例如仅使用数字)时,请相应增大长度。
- 不确定生成多少个 Nano ID 才不会发生碰撞。 — 在默认的 21 位长度下,即使每秒生成约一万亿个 ID、持续一千年,发生一次碰撞的概率也只有约 1%——只有在预期生成数量也远少于此时,才应该缩短长度。
常见问题
- 什么是 Nano ID?
- Nano ID 是一种简短、URL 安全的随机唯一标识符,通常长 21 个字符,使用加密安全的随机数生成。它能在比 UUID 短得多的字符串中提供相当的抗碰撞能力。
- Nano ID 与 UUID 有什么区别?
- UUID 是固定 36 个字符的格式,具有明确定义的结构(版本位和变体位)。Nano ID 没有固定结构——你可以自行选择长度和字符表——在默认设置下,它更短,但抗碰撞能力与 UUID 相当。
- Nano ID 生成器可以使用自定义字符表吗?
- 可以。将字符表字段替换为任意一组不重复的字符——例如仅数字、十六进制字符或不区分大小写的字符集——生成器就会只从该字符集中生成 ID。
- Nano ID 生成器会把我创建的 ID 上传到某个地方吗?
- 不会。每个 Nano ID 都是使用浏览器的加密安全随机数生成器在本地生成的。没有任何内容会被发送到服务器,因此你创建的 ID 只会在你的设备上可见。
- Nano ID 生成器的输出会偏向某些字符吗?
- 不会。它使用无偏拒绝采样,丢弃超出字符表范围的随机字节,而不是用取模来压缩它们,因此字符表中每个字符出现的概率都是相同的。
- Nano ID 应该选择多大的长度?
- 默认的 21 个字符是通用场景下的安全选择。较短的 ID(10-14 个字符)适合流量较低的短链接 slug;较长的 ID 适合需要更强抗碰撞能力的高流量系统。
相关工具
全部 ArrayKit 工具