UUID UUID Generator

免费 · 无需注册 · 无需安装

UUID 格式转换工具

把 UUID 转成目标系统需要的写法 —— 九种格式,一次可处理 200 条。

  • 9 种输出格式
  • 最多 200 条
  • .NET / SQL / Base64

UUID 格式转换工具

Formatter
最多 200 行。花括号、引号、大写字母和省略连字符的写法都可以直接粘贴。

结果 0

所有值都在你的设备上用 Web Crypto API 生成,不会发送到浏览器之外的任何地方。 快捷键:Ctrl + Enter — 重新生成

什么是UUID 格式转换

同一个 UUID 在不同系统里有不同写法:.NET 用大写加花括号,有些存储层要求去掉连字符,C# 代码里是字节数组,URL 里则常用 Base64url 简写。

这个工具负责在这些写法之间转换,输入的格式不重要 —— 大写小写、带不带连字符、带不带括号都能识别。

使用方法

  1. 粘贴值,每行一个,最多 200 条。
  2. 输出格式里选择目标写法。
  3. 点击转换,结果按行对应。
  4. 不在输入里的行会在跳过计数中体现出来。

适用场景

  • 把标准 UUID 转成 SQL 字面量,直接写进迁移脚本。
  • 为 URL 生成 Base64url 简写。
  • 把从数据库导出的大写值统一成小写。
  • 为单元测试生成 C# 字节数组。

结构

所有写法表达的都是同一组 128 位。十六进制类写法保留这 128 位,Base64url 用 22 个字符表示同样的内容,字节数组则是把 16 字节逐字节写出来。

UUID 格式转换 的定位

什么时候该用哪个选项
选项何时使用
转换在九种写法之间改形,值本身不变
校验判断是否有效,并说明是哪一位不合法
生成产生新值,而不是改写已有的值

UUID 各版本速查表

版本可排序数据来源适合的场景
v1不可以时间戳 + MAC 地址仍在依赖 v1 的既有系统
v3不可以名称的 MD5 哈希必须使用 MD5 时的确定性标识符
v4不可以122 位随机数绝大多数普通的唯一标识需求
v5不可以名称的 SHA-1 哈希需要同一名称始终得到同一标识符
v6可以重排后的时间戳既要随机性又要便于排序
v7可以毫秒精度的 Unix 时间数据库主键和事件标识符
v8不可以自定义位布局专有格式和实验性用途

这七个版本都是 128 位,都用同样的 8-4-4-4-12 写法表示,区别只在于各个位代表什么。

代码示例

javascript

const compact = id.replace(/-/g, "");

// Base64url
const bytes = new Uint8Array(16);
compact.match(/../g).forEach((h, i) => bytes[i] = parseInt(h, 16));
const b64 = btoa(String.fromCharCode(...bytes))
  .replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");

python

import uuid, base64
u = uuid.UUID(value)
compact = u.hex
b64 = base64.urlsafe_b64encode(u.bytes).rstrip(b"=").decode()

java

UUID u = UUID.fromString(value);
String compact = u.toString().replace("-", "");

常见问题

转换会改变这个 UUID 吗?

不会。九种写法表达的是同一组 128 位,只是外观不同。任意格式互转都不会改变这个值。

去掉连字符还是同一个 UUID 吗?

是的。连字符只是给人看的可读性分组,去掉之后仍然是 32 位十六进制、同一个值。如果存储层不允许有符号,可以放心去掉。

Base64url 为什么只有 22 个字符?

因为它把 128 位编码得更紧凑。16 字节按 6 位一组平分就得到 22 个字符,省掉了连字符,也能安全地放进 URL。代价是可读性变差。