UUID Generator
Generate random UUIDs
Generate random UUIDs 在您的浏览器中本地运行
About the
UUID 生成器使用浏览器的加密安全随机数生成器以标准 8-4-4-4-12 形式生成版本 4 通用唯一标识符,例如 3f2504e0-4f89-41d3-9a0c-0305e82c3301。版本 4 UUID 携带 122 个随机位,因此数十亿个标识符之间发生冲突的几率远远低于同一时期发生硬件故障的几率。该工具批量生成,因此您可以一次性填充夹具文件或种子表,而无需单击二十次。
Where people use the
- 使用真实的标识符填充固定文件或种子脚本。
- 为 API 测试套件创建请求 ID。
- 为从电子表格导入的行生成主键。
- 为尚未获得授权的上传生成不可猜测的文件名。
How to use the
- 1
选择您需要的标识符数量
设置数量从 1 到几百。每一个都是独立于新的随机字节生成的。
- 2
选择格式
带连字符的标准小写字母是默认值。大写和无连字符的形式也可用于需要它们的系统。
- 3
生成
每个标识符都会立即出现,每行一个,准备好作为一个块进行复制。
- 4
复制并粘贴到您的数据中
使用复制按钮避免尾随空格,然后直接粘贴到 SQL、JSON 或电子表格列中。
提示和最佳实践
- 将 UUID 存储在本机 UUID 列中,而不是存储在可变长度字符串类型中,这样可以更快地节省空间和索引。
- 如果您需要可排序的键,请在代码中生成版本 7,而不是此处的版本 4。
- 切勿通过解析 UUID 来派生任何内容;这些位是随机的,没有意义。
常见问题
这些标识符真的是随机的吗?
是的。它们来自 crypto.getRandomValues(平台的加密安全源),而不是 Math.random。然后根据规范要求设置版本和变体位,留下 122 位随机性。
我应该使用版本 4 还是版本 7?
如果仅通过精确匹配来查找标识符,则为版本 4。如果它是数据库中的主键,则为版本 7,因为它的前缀是时间戳,因此插入会停留在索引末尾附近,而不是分散在索引中并使 B 树碎片化。
我可以在这里生成版本 1、3 或 5 吗?
不需要。版本 1 需要 MAC 地址和时钟状态,版本 3 和版本 5 是命名空间和名称的确定性哈希。这些是派生值而不是随机值,因此它们属于代码,而不是随机生成器。
在 URL 中公开 UUID 是否安全?
不可猜测,这是有用的,但不可猜测并不等于授权。不要将不可猜测的标识符视为访问控制检查;单独验证权限。
版本和变体位是什么?
对于版本 4,第 13 位十六进制数字固定为 4,对于 RFC 4122 变体,第 17 位限制为 8、9、a 或 b。这就是为什么该模式总是看起来像 8-4-4-4-12,第三组中有 4。
我需要担心重复吗?
实践中没有。在出现 50% 的单一碰撞概率之前,您需要生成大约 2.7 乘以 10 到第 18 个标识符。无论如何都要对列保持唯一约束,因为它几乎不需要任何成本。