功能说明
本工具生成 Nano ID:简短、随机、URL 安全的标识符,可用作数据库主键、文件名、短链接路径、邀请码或测试数据。它使用与 Nano ID 库相同的方法,因此生成的 ID 与代码里 nanoid() 产生的 ID 外观和特性一致。
你可以调整长度,选择内置字符集或输入自己的字符集,一次最多生成 1000 个。选项下方会显示每个 ID 的熵,以及大约生成多少个 ID 后重复概率才会达到 1%。
使用方法
- 选择长度,21 是 Nano ID 的默认值。
- 选择字符集:URL 安全、字母和数字、小写字母和数字、十六进制、纯数字、排除易混字符,或自定义。
- 选择需要的数量。修改任何设置都会立即重新生成。
- 点击生成得到一批新的 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 个不同的字符;重复的字符会被拒绝,因为它们会让某些字符出现得更频繁。