DevToolPal
简

Nano ID 生成器

生成 Nano ID:简短、URL 安全的唯一 ID,使用安全随机数,长度任选,可用预设或自定义字符集,并给出重复概率估算。

本地处理,不上传

选项

每个 ID 126 位熵 · 大约生成 1.3 × 10¹⁸ 个 ID 才有 1% 的重复概率

Nano ID

0 字符 · 0 B

功能说明

本工具生成 Nano ID:简短、随机、URL 安全的标识符,可用作数据库主键、文件名、短链接路径、邀请码或测试数据。它使用与 Nano ID 库相同的方法,因此生成的 ID 与代码里 nanoid() 产生的 ID 外观和特性一致。

你可以调整长度,选择内置字符集或输入自己的字符集,一次最多生成 1000 个。选项下方会显示每个 ID 的熵,以及大约生成多少个 ID 后重复概率才会达到 1%。

使用方法

  1. 选择长度,21 是 Nano ID 的默认值。
  2. 选择字符集:URL 安全、字母和数字、小写字母和数字、十六进制、纯数字、排除易混字符,或自定义。
  3. 选择需要的数量。修改任何设置都会立即重新生成。
  4. 点击生成得到一批新的 ID,然后复制或下载列表,每行一个 ID。

示例

在 JavaScript 中用 nanoid 包生成同样的 ID:

import { nanoid, customAlphabet } from 'nanoid'

nanoid() // "V1StGXR8_Z5jdHi6B-myT"
const orderId = customAlphabet('0123456789ABCDEFGHJKLMNPQRSTUVWXYZ', 12)
orderId() // "4KQ7ZB9XH2MD"

如何选择字符集

URL 安全字符集让每个字符携带的随机性最多,在 URL、文件名和 JSON 中都无需转义。字母和数字去掉了 _ 和 -,双击就能选中整个 ID。十六进制和纯数字适合只接受这些字符的系统,但要达到同样强度需要更长的 ID。排除易混字符的字符集去掉了 0 和 O、1、l 和 I 等字符,人工阅读和输入时更不容易出错。

常见问题

› 什么是 Nano ID?

Nano ID 是一种流行的随机唯一 ID 格式和 JavaScript 库。默认 ID 由 21 个字符组成,取自 64 个 URL 安全字符(A–Z、a–z、0–9、_ 和 -),共 126 位随机性,接近 UUID v4 的 122 位,但字符串短得多。

› ID 应该多长?

取决于你要生成多少个 ID。选项下方的估算显示大约生成多少个 ID 时,出现任意两个相同的概率达到 1%。默认的 21 个字符几乎适用于任何系统;短链接或邀请码通常 10 到 12 个字符就够了,再配合数据库的唯一性检查。

› 这些 ID 的随机性能满足安全需求吗?

字符来自浏览器的密码学安全随机数生成器,超出字符集范围的值会被丢弃而不是取模,所以每个字符出现的概率相同。足够长的 ID 可以用作无法猜测的令牌。所有内容都不会发送到服务器。

› 可以用自己的字符吗?

可以。选择“自定义”并输入字符集,例如需要口头念出的编码只用大写字母。字符集需要 2 到 256 个不同的字符;重复的字符会被拒绝,因为它们会让某些字符出现得更频繁。