如何逐步生成 UUID
快速解答
要生成 UUID:打开 UUID 生成器,选择版本 4(随机),然后单击生成。该工具使用 crypto.getRandomValues 生成类似“550e8400-e29b-41d4-a716-446655440000”的 UUID 。所有生成都发生在本地 - 不会将 UUID 发送到服务器。
介绍
UUID(通用唯一标识符)是一个 128 位标识符,实际上无需各方之间的协调即可保证唯一。 UUID 通常用作数据库主键、请求 ID、会话令牌和分布式系统标识符。最常见的版本是 UUID v4,它使用随机位。本指南向您展示如何在浏览器中生成 UUID 并解释版本之间的差异。
步步
-
打开 UUID 生成器工具
转到 UUID 生成器工具页面。该工具支持 UUID v4(随机)和 v1(基于时间)生成。
-
选择UUID版本
对于大多数用例,请选择 UUID v4 - 它使用加密安全的随机位,并且没有隐私问题。仅当您需要按时间排序的 ID 并接受隐私权衡时才选择 v1(v1 嵌入时间戳和 MAC 地址)。
-
选择数量
设置要生成的 UUID 数量 — 从 1 到 1000。一次生成多个 UUID 对于播种数据库或创建批量请求 ID 很有用。
-
生成 UUID
单击生成。该工具使用 v4 的 crypto.getRandomValues 生成 UUID(s),确保加密随机性。每个 UUID 是一个 36 个字符的字符串,格式为 8-4-4-4-12 十六进制数字。
-
复制 UUID(s)
单击“复制”以复制单个 UUID,或者如果生成了多个,则复制整个列表。使用 UUID 作为数据库 ID、请求相关 ID 或会话令牌。
示例
UUID v4(随机)
输入: 版本:4,数量:1
输出: 550e8400-e29b-41d4-a716-446655440000
多个 UUID v4
输入: 版本:4,数量:3
输出: f47ac10b-58cc-4372-a567-0e02b2c3d479
7b582ea2-1f4d-4f6a-9c83-3a5f2b8e1d47
3d4a5b6c-7e8f-4a2b-9c1d-0e3f5a7b9c2d
UUID v1(基于时间)
输入: 版本:1,数量:1
输出: a3bbf0ee-d6e4-11ed-a5b3-3c9703e8b4a1
常见问题
- 使用 Math.random() 生成 UUID — 它在加密上不安全。始终使用 crypto.getRandomValues() 或 crypto.randomUUID()。
- 将 UUID 作为字符串存储在数据库中 — 以 UUID 类型(16 字节)存储的 UUID 比字符串(36 字节)更有效。
- 在安全敏感上下文中使用 v1 —v1 嵌入时间戳和 MAC 地址,这可能会泄露信息。使用 v4 进行匿名。
- 假设 UUID 确实是唯一的——它们实际上是唯一的(冲突概率可以忽略不计),但不能保证唯一。
提示
- 几乎所有用例都使用 UUID v4 - 它是随机的,没有隐私问题,并且受到所有现代数据库的支持。
- 在现代浏览器中使用 crypto.randomUUID() 来获得没有库的内置 v4 生成器。
- 将 UUID 作为 UUID/GUID 类型存储在数据库中(16 字节)而不是字符串(36 字节),以获得更好的存储和索引性能。
- 使用 UUID 作为分布式跟踪的请求 ID — 它们将跨服务的请求关联起来,无需中央协调。