关于此工具
UUID(Universally Unique Identifier,通用唯一标识符)是一个 128 位的值,以 32 个十六进制数字按规范的 8-4-4-4-12 布局书写。本生成器可产生版本 4 的 UUID,它用来自 Web Crypto API 的密码学随机数据填充 122 位;以及来自 RFC 9562 的版本 7 的 UUID,它在随机位之前前置一个 48 位大端的 Unix 毫秒时间戳,使标识符可按时间顺序排序。两者都按规范手动设置其版本位和变体位。
用它为数据库主键、关联与请求 ID、幂等键或测试夹具生成种子。当你需要可按时间排序、能让 B-tree 索引保持紧凑并避免随机 v4 键所引发的页面分裂震荡的键时,选用 v7;当你只需要唯一性而不需要任何排序信号时,选用 v4。一次最多生成 500 个,将它们复制为以换行符分隔的列表,并切换大写、无连字符或带引号的输出,以便直接粘贴进 SQL、JSON 或代码。
每个 UUID 都在你的浏览器中用 crypto.getRandomValues 生成——没有任何 UUID 会被发送到服务器或被服务器记录。
常见问题
UUID v4 和 UUID v7 有什么区别?
v4 是完全随机的(122 个随机位),因此其值不可预测但无序。v7 以 48 位的 Unix 毫秒时间戳开头,后跟随机位,因此较晚生成的值会排在较早的值之后——这对于能高效索引的数据库键很有用。
UUID v4 的值是否保证唯一?
并非保证,但碰撞概率微乎其微:在 122 个随机位下,你需要生成数十亿个 UUID 才会在统计上有可能出现重复。在实际用途中,它们被视为唯一。
UUID v7 用作数据库主键安全吗?
安全,而且为此目的它通常比 v4 更好。因为 v7 是按时间排序的,顺序插入会追加到 B-tree 索引的末尾,而不是散布在索引各处,从而减少页面分裂并使索引保持更紧凑。