NanoID 生成
本地批量生成 NanoID:长度默认 21,字符集默认 URL 安全字母表(A-Za-z0-9_-),比 UUID 更短更适合做 ID。
>_ 使用指南 · GUIDE
在浏览器本地批量生成 NanoID:默认长度为 21,默认字符集是 URL 安全的字母表(A-Za-z0-9_-),长度与字符集可按需调整,点一次即生成一批,直接复制使用。
NanoID 是近年来流行的紧凑型唯一 ID:相比 UUID,它更短(默认 21 字符 vs UUID 的 36 字符)、字符集天然 URL 安全、且基于密码学安全的随机源生成。作为数据库主键、短链标识、文件名、分享链接里的 ID 都很好用,接近「越短越好、无冲突、可直接进 URL」。
常见用法:
- 单条/批量:需要几个 ID 就生成几个,复制粘贴到代码或数据里
- 调长度:要更短可减小长度(如 10–12),要更强可加长
- 改字符集:默认字母表已 URL 安全,特殊场景可自定义
- 示例对照:点示例生成一段,直观感受不同长度下的形态与密度
生成完全在浏览器本地完成,随机源来自密码学安全的 WebCrypto,不会上传任何数据。
>_ 常见问题 · FAQ
Q1 · NanoID 和 UUID 有什么区别?什么时候用哪个?
UUID v4 是 36 字符(含连字符)、随机 122 位,几乎不可能碰撞但较长;NanoID 默认 21 字符,用更大的字符集(64 字符 URL 安全字母表)在更短的长度内保留高随机性。想「一眼短、能进 URL、够随机」,用 NanoID;需要与既有 UUID 字段/系统兼容、或需要严格标准格式,用 UUID。两者都是不错的唯一 ID 方案。
Q2 · NanoID 默认长度为什么是 21?
21 是官方推荐的默认值:在 64 字符字母表下,21 位能提供与 UUID 相近的碰撞防护量级,同时保持足够短的观感。想更短可降到 10–12(碰撞概率上升但仍适合多数业务),想更稳妥可加长到 25+,可按需权衡。
Q3 · NanoID 会不会碰撞(重复)?
理论上有概率,但极小。随机 ID 都存在碰撞可能,NanoID 通过足够的长度与全随机位把概率压到可忽略水平。要彻底无碰撞,应改用自增/有序 ID 或由数据库主键保证唯一,随机 ID 更适合「离线生成、难以预测」的场景。
Q4 · NanoID 的字符集安全吗?会出现在 URL 或文件名里出问题吗?
默认字母表 A-Za-z0-9_- 中,- 和 _ 都是 URL 与常见文件名的安全字符,不含 +、/、= 等需要编码的字符,因此可直接放进 URL 路径、查询串、文件名而无需转义。这正是它相比部分 base64 字符串的优势。
Q5 · NanoID 是纯随机的,能保证「安全不可猜」吗?
默认生成使用密码学安全随机数(等同 UUID v4 的随机源),对手无法预测或枚举,适合用作临时令牌、分享密钥等需防猜测的标识。若业务不需要防猜测,也可接受更短的 ID。绝不要用可预测的种子或时间戳直接当随机源。