不喜欢广告? 无广告 今天

纳米ID生成器

开发人员随机的安全
广告 移除?
推荐:21(默认,约1490亿年到1%碰撞风险,在每小时1000个ID的情况下)。

字母

关于Nano ID

广告 移除?

指导

Nano ID生成器

纳米ID生成器

在浏览器中生成安全且URL友好的唯一ID。Nano ID生成器使用紧凑标识符,基于 crypto.getRandomValues,完全控制长度、字母表和输出格式。默认ID长度为21个字符,具有与UUID v4相同的碰撞抗性——但短41%,并可直接安全地嵌入URL中。

如何使用

  1. 设置 ID 长度 (默认21个字符,范围为2到256)。
  2. 选择 生成数量 一次生成的ID数量(1到1000)。
  3. 选择一个 字母:URL安全(默认)、字母数字、十六进制、无易混淆字符,或自定义。
  4. 选择一个 输出格式:纯文本、JSON数组或CSV。
  5. 点击 生成。通过输出面板中的按钮复制或下载结果。

特征

  • 可配置长度 – 每个ID长度从2到256个字符。
  • 9个字母表预设 – URL安全、字母数字、小写、大写、数字、十六进制(小写/大写)、无易混淆字符,以及一个完全自定义的字母表字段。
  • 批量生成 – 一次可生成最多1000个唯一ID。
  • 多种输出格式 – 纯文本、JSON数组或CSV格式,可直接用于代码或导入。
  • 实时碰撞统计 – 查看ID空间、以比特为单位的熵值,以及1%碰撞可能发生的阈值。
  • 加密安全 – 使用 crypto.getRandomValues 配合标准的基于nanoid的掩码算法,在任何字母表上实现均匀分布。
  • 纯客户端运行 – 无需发送到服务器;ID永远不会离开您的浏览器。
  • 复制与下载 – 一键复制到剪贴板,或下载为 .txt, .json, 或者 .csv.

常问问题

  1. Nano ID是否真的比顺序数据库ID更安全?

    是的。顺序ID会泄露两方面的信息:现有记录数量以及创建速度。它们还允许攻击者通过在URL中递增数字来枚举您的数据。具有默认21个字符长度的Nano ID大约有126比特的熵,因此猜测一个有效ID在计算上是不可行的。当ID暴露在URL、共享链接或公开API中时,请始终使用它们。

  2. Nano ID与UUID v4相比如何?

    它们的碰撞抗性几乎相同——UUID v4有122比特熵,而长度为21的Nano ID有126比特。实际差异在于大小和字符集。UUID v4为36个字符,包含连字符(通常需要百分号编码);Nano ID默认为21个字符,使用URL安全的字母表。Nano ID还暴露了其字母表和长度,因此您可以为低流量系统缩小ID长度,或为高流量系统增强安全性。

  3. 为什么Nano ID需要基于掩码的算法?

    随机字节范围从0到255,但大多数实用的字母表不是2的幂——URL安全字母表有64个字符,无易混淆字符字母表有49个。如果简单地将字节对字母表大小取模,字母表开头的字符会出现略微更多的频率,这种细微偏差可以被攻击者利用。基于掩码的算法将字母表向上取整到下一个2的幂,然后丢弃超出字母表范围的字节,从而确保每个字符出现的概率相等。

  4. 什么是生日悖论,为什么它限制了ID长度?

    生日悖论表明,在随机空间中,碰撞出现的时间远早于直觉所想。当有N个可能的ID时,大约在生成了√N个ID后,就有约50%的碰撞概率——而不是N。因此,一个64字符字母表的8字符ID有281万亿种组合,但50%的碰撞在生成约1900万个ID后就可能发生。这就是为什么用于大规模数据集的ID长度至少需要20到24个字符。

  5. 无易混淆字符字母表排除了哪些字符,以及何时应该使用它?

    它移除了人类最容易混淆的字符:零和大写O,一和大写I以及小写L,以及其他一些在排版上相似的字符。适用于任何人类可能口头读出、从截图中转录或从打印的收据中输入的代码——例如优惠码、支持工单引用、双因素备份码或恢复码。代价是字母表更小(49个字符对比64个),因此需要增加1到2个字符长度以保持相同的碰撞抗性。

想要享受无广告的体验吗? 立即无广告

安装我们的扩展

将 IO 工具添加到您最喜欢的浏览器,以便即时访问和更快地搜索

添加 Chrome 扩展程序 添加 边缘延伸 添加 Firefox 扩展 添加 Opera 扩展

记分板已到达!

记分板 是一种有趣的跟踪您游戏的方式,所有数据都存储在您的浏览器中。更多功能即将推出!

广告 移除?
广告 移除?
广告 移除?

新闻角 包含技术亮点

参与其中

帮助我们继续提供有价值的免费工具

给我买杯咖啡
广告 移除?