> cd ./tools/uuid
本地计算 · 无账号
这是什么
UUID 用来给数据库行、请求或客户端实体分配几乎不冲突的标识。本页批量生成 UUID v4,随机性来自 crypto.getRandomValues,适合本地开发时快速取测试 ID。生成不经过服务器。每次点击都是新的随机抽样,页面不会把结果写入 cookie 或本地长期存储。
原理
RFC 4122 的 UUID 是 128 bit。v4 变体把版本半字节写成 4,并把 variant 位写成 RFC 规定的模式,其余位来自密码学安全随机数。文本形式为 8-4-4-4-12 的十六进制,中间用连字符。碰撞空间极大,但仍应在数据库层保留唯一约束。v4 不编码时间顺序;若需要可排序 ID,应考虑 ULID 或 UUID v7,那些不在本页范围。阅读一个 UUID 时,先看第 13 个字符是否为 4,能快速判断它是不是声称的 v4;再检查 variant 半字节是否落在规定集合。这比「看起来像一串乱码」更有排错价值。
什么时候用
写种子数据、手工构造 JSON 示例、或在没有后端的原型里需要占位主键时最省事。生产环境的 ID 策略仍应遵循业务规范,不要假设「前端生成就一定全局唯一且永不出错」。在讲解分布式系统或本地演示数据时,用本页一次生成多个互异 ID,比手打更容易避免复制粘贴成同一主键。
示例
- v4 形态
输入:生成 1 个 输出:xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx(版本位为 4)
- 批量互异
输入:生成 5 个 输出:每行一个 UUID,彼此不同
常见错误
- 不要把 UUID 当保密令牌:它可能出现在日志与 URL 里。
- 复制时避免带上隐藏空格或重复行。
- 把 v4 当排序键会导致插入局部性差;需要时间序请换方案。
常见问题
- 会不会撞车?
- 正常使用下概率可忽略;关键系统仍应在存储层做唯一约束。
- 支持 v1 / v7 吗?
- 本页专注 v4。时间有序 ID 请用相应库或服务端生成。
- 生成记录会保存吗?
- 不会上传。离开页面即消失,除非你自己复制走。
C++ 里用随机数拼 v4(示意)
#include <random> #include <cstdio> // 示意:用 random_device 填 16 字节后写入版本/变体位,再按 8-4-4-4-12 打印 // 生产请用成熟库;可在 /playground 打印几个样例与本页对照形态
重点检查第 13 个字符是否为 4,以及 variant 位是否合法。本页可当可视化对照。
在 Playground 打开 · 数据只在本地处理:随机数在浏览器内生成。刷新页面后列表清空,本站不会保留你点过「生成」的历史记录,也不会把 UUID 写入分析事件、服务器日志或剪贴板同步服务。