UUID 生成
加密与哈希
正在载入
正在加载工具
正在准备工具,暂时无法估算剩余时间。
本工具的全部运算都发生在你的浏览器中,输入内容不会发送到任何服务器。
关于这个工具
保留原有 UUID 生成工具,默认生成五个安全随机的 v4 标识,也可选择以时间戳开头的 v7。粘贴已有 UUID 可单独检查格式、变体、版本及支持的编码时间。全部处理在浏览器内完成,不上传或保存输入。
常见用途
- 生成 1–200 个测试标识,复制单个 UUID 或换行分隔的完整批次。
- 比较随机 v4 与按编码毫秒分组的 v7,避免误认为它们严格按生成顺序递增。
- 排查 UUID 文本格式错误,识别 nil/max 和旧版变体,读取 v1、v6 或 v7 中编码的时间。
使用方法
- 1.保持默认 v4 或选择 v7,输入 1–200 之间的整数数量并生成;初始数量为 5。可复制单个成功结果或整个生成批次。
- 2.检查时每行粘贴一个 8-4-4-4-12 格式的 ASCII 十六进制 UUID。接受大写、小写和混合大小写,结果统一显示小写标准形式。运行检查后,逐行对照原始输入和结果。
- 3.分别查看格式、变体、版本和时间戳,不要混为有效性保证。修正错误行后再使用标识。修改生成设置或检查输入会清除对应旧结果,防止复制过期输出。
可执行 UUID 检查示例
规范化并检查 RFC v7 测试向量
017F22E2-79B0-7CC3-98C4-DC0C0C07398F
{"canonical":"017f22e2-79b0-7cc3-98c4-dc0c0c07398f","variant":"rfc9562","version":7,"unixMilliseconds":1645557742000,"utc":"2022-02-22T19:22:22.000Z"}将此行粘贴到检查输入中。输出是所显示字段的精简摘要。生成器每次使用新的随机数据,因此生成 v7 不会重现这个固定测试向量。
比较表示同一时间的 v1 与 v6
c232ab00-9414-11ec-b3c8-9f6bdeced846 1ec9414c-232a-6b00-b3c8-9f6bdeced846
{"version":1,"gregorianTicks":"138648505420000000","utc":"2022-02-22T19:22:22.0000000Z"}
{"version":6,"gregorianTicks":"138648505420000000","utc":"2022-02-22T19:22:22.0000000Z"}这两个 RFC 示例以不同布局编码相同的公历纪元 100 ns 计数 138648505420000000。各行独立检查,摘要保留全部七位小数。
不给 v4 和自定义 v8 编造时间戳
919108f7-52d1-4320-9bac-f847db4148a8 2489e9ad-2ee2-8e00-8ec9-32d5f69181c0
{"variant":"rfc9562","version":4,"timestamp":null}
{"variant":"rfc9562","version":8,"timestamp":null}两个字符串均为 RFC 变体且版本可识别。null 表示本检查器不解释时间戳;自定义 v8 应用可以另行定义其字段。
在解释版本前识别 nil 与 max
00000000-0000-0000-0000-000000000000 ffffffff-ffff-ffff-ffff-ffffffffffff
{"special":"nil","variant":"ncs","version":null,"timestamp":null}
{"special":"max","variant":"future","version":null,"timestamp":null}全零和全一哨兵值仍显示其实际变体位。它们不适用普通版本号,也不会得到虚构的时间戳。
区分变体布局与看似版本号的半字节
00000000-0000-7000-0000-000000000001 00000000-0000-7000-c000-000000000001 00000000-0000-7000-e000-000000000001 00000000-0000-f000-8000-000000000001
{"variant":"ncs","version":null,"timestamp":null}
{"variant":"microsoft","version":null,"timestamp":null}
{"variant":"future","version":null,"timestamp":null}
{"variant":"rfc9562","version":15,"timestamp":null}前三个 UUID 在版本位置含十六进制 7,却不是 RFC v7。最后一个为 RFC 变体,版本 15 属于保留值。四行文本格式均正确,但都不解析时间戳。
拒绝替代写法而不静默修复
017f22e279b07cc398c4dc0c0c07398f
{017f22e2-79b0-7cc3-98c4-dc0c0c07398f}
urn:uuid:017f22e2-79b0-7cc3-98c4-dc0c0c07398f{"ok":false,"code":"format"}
{"ok":false,"code":"format"}
{"ok":false,"code":"format"}本工具有意采用严格输入规则,拒绝紧凑格式、花括号和 URN 写法。这些格式错误按行报告;接受的标准写法必须使用 ASCII 连字符且不带额外字符。
常见 UUID 使用错误
- 粘贴空白行、空格、花括号或 urn:uuid: 前缀:每行只提供一个完整标准字符串。
- 把非 RFC 变体中的 7 当作 UUIDv7:必须先检查变体布局。
- 把 v7 当作秘密或严格递增序列:它暴露时间,本生成器在同一毫秒内采用随机顺序。
- 认为格式正确或新生成的 UUID 一定未被使用:应用应自行实施所需唯一性约束。
限制与说明
- 仅生成 v4 和 v7。v4 使用浏览器 CSPRNG,包含 122 位随机数据。本工具的 v7 由 48 位 Unix 毫秒时间戳和 74 位 CSPRNG 随机数据组成,不使用单调计数器或亚毫秒序列。同一毫秒内顺序随机,时钟回拨时后生成的值可能更小。
- 数量必须为 1–200 之间的整数。安全随机源缺失或失败时停止生成,不降级到 Math.random,也不返回部分批次。UUID 不能当作密码、身份验证令牌或保密性证明;本工具不保证绝对唯一,不在数据库中预留标识,也不查询全局碰撞。
- 检查最多接受 200 行、12000 个字符。支持 LF 和 CRLF 换行,允许一个末尾行终止符;空行和首尾空白无效。无连字符的紧凑格式、花括号、urn:uuid: 前缀、Unicode 连字符及非 ASCII 十六进制字符均明确拒绝。超过上限会拒绝整个检查。
- 变体位区分 NCS、RFC 9562、Microsoft 和未来保留布局。nil 与 max 是特殊值,不是普通的 v0/v15。RFC 版本字段可识别 v1–v8,并报告未使用或保留值;其他变体中看似版本号的半字节不按 RFC 版本解释。
- 仅对 RFC 变体的 v1/v6(公历纪元 100 ns 单位)和 v7(Unix 毫秒)解析时间。v1/v6 的精确计数和七位 UTC 小数保留 100 ns 精度;毫秒视图向下取整。v4、v8、其他版本、非 RFC 变体以及 nil/max 不解释时间戳。编码时间可以伪造,不能证明记录的真实创建时刻。处理不发送网络请求,也不持久化输入。
常见问题
v4 与这里的 v7 生成器有何区别?
v4 除固定的版本位和变体位外均为随机数据。v7 以当前 Unix 毫秒开头,其余有效载荷使用安全随机数据。本工具不维护单调计数器。标准 v7 字符串排序可按递增的编码毫秒分组,但同一毫秒内顺序随机,时钟回拨也可能使顺序倒退。应用需要唯一性时,仍应保留数据库唯一约束。
v7 示例会解析出什么?
017F22E2-79B0-7CC3-98C4-DC0C0C07398F 会规范为小写,变体为 RFC 9562,版本为 7。其 Unix 毫秒值为 1645557742000,对应 2022-02-22T19:22:22.000Z。这只是编码字段,不是经验证的创建时间。
格式正确的 UUID 也可能是不支持或特殊的值吗?
会。全零 nil 和全一 max 会单独标记。旧版 NCS/Microsoft 及未来保留变体可以符合标准文本格式,却没有 RFC 版本语义。RFC 版本半字节为 0 时表示未使用,9–15 表示保留;不能解析语义并不等同于文本格式错误。v2 标记为 DCE Security,但不解码其内部布局。
为什么 v4 或 v8 没有时间?
v4 包含随机数据;v8 的布局由应用定义,本检查器不能推断通用时间戳。仅解析 RFC 变体的 v1、v6 和 v7 时间。字段描述的时间值并不证明真实性、所有权、唯一性或审计事件可信性。