logo
GeekFormat

UUID 生成器

格式选项

生成数量

1 个

免费在线UUID/GUID/ULID/NanoID生成器,支持5种唯一ID格式、批量最多100条、格式自定义和UUID验证识别,打开即用适合数据库主键和测试造数。

相关推荐

适用场景

  • 数据库设计时生成 UUID v4 作为表记录主键,避免自增ID泄露数据量
  • 分布式系统或微服务架构中使用 ULID 作为可排序的全局唯一请求追踪ID
  • 接口开发与联调时批量生成一批 UUID 作为测试数据和模拟订单号/用户ID
  • 前端URL短链或分享链接中使用 NanoID 替代UUID,更短更美观无需URL编码
  • 使用 UUID v5 基于固定命名空间生成确定性ID,确保相同输入始终得到相同输出
  • 调试日志或第三方文档中遇到不确定格式的ID时,使用验证功能识别ID类型和版本

功能特点

  • 五种ID一页覆盖:同时支持 UUID v1(时间戳)、v4(随机)、v5(命名空间)、ULID(可排序)、NanoID(URL安全),一个工具满足不同技术栈需求
  • UUID验证识别:切换到验证标签,粘贴任意ID即可识别是UUID哪个版本,还是ULID/NanoID格式,调试时快速排查问题
  • 批量生成最高100条:支持1-100条任意数量批量生成,测试造数不再手动一条一条复制
  • 格式灵活切换:UUID支持大小写和连字符开关,适配数据库、URL、配置文件等不同场景的格式要求
  • 导出与历史记录:支持一键复制全部、导出TXT/JSON文件,生成历史本地保存可随时恢复,批量操作更高效
  • 纯前端安全随机:使用浏览器crypto API生成加密级随机数,ID不上传服务器,断网可用

使用方法

  1. 在上方卡片中选择需要生成的ID类型:UUID v4(推荐)、v1、v5、ULID或NanoID
  2. 如选择UUID v5,需输入命名用的字符串;其他ID可直接设置格式选项
  3. 根据需要切换大小写和连字符开关,通过快捷按钮或滑块设置批量生成数量(1-100)
  4. 点击生成按钮后查看结果列表,可逐条复制、一键复制全部或导出TXT/JSON文件
  5. 如需验证已有ID,切换到「验证」标签粘贴ID字符串即可得到类型和版本信息

常见问题

UUID 和 GUID 有什么区别?

UUID(Universally Unique Identifier)和 GUID(Globally Unique Identifier)本质上是同一个东西,只是叫法不同:UUID 是 IETF 标准(RFC 4122)的正式名称,GUID 是微软在 Windows 生态中的习惯叫法。两者的格式完全一致,都是形如 `550e8400-e29b-41d4-a716-446655440000` 的128位标识符。本工具生成的标准 UUID 可以直接用于任何需要 GUID 的场景。

UUID v1、v4、v5 应该怎么选?

UUID v1 基于时间戳和MAC地址生成,按时间有序可追溯,但可能泄露MAC地址;UUID v4 完全基于随机数生成,是最常用、最安全的选择,适合绝大多数主键和标识场景;UUID v5 是基于命名空间的哈希版本(SHA-1),相同命名空间+相同名称始终生成相同UUID,适合需要确定性输出的场景。一般开发中默认选 UUID v4 即可。

ULID 和 NanoID 相比 UUID v4 有什么优势?

ULID(26字符)比 UUID(36字符含连字符)更短,按时间排序,适合数据库索引和日志追踪;NanoID(21字符默认)更短更快,用URL安全字符,URL和Cookie中无需转义,体积比UUID小30%。三者碰撞概率都极低,但分布式系统中ULID的可排序性更有优势,NanoID在前端/URL场景下更友好。

可以一次性批量生成多条 UUID 吗?

可以。本工具支持1到100条批量生成,点击数量按钮或拖动滑块设定数量后一键生成,适合测试造数、批量导入和脚本准备唯一ID。生成后支持一键复制全部结果,也可导出为TXT文本或JSON文件。

批量生成操作说明

可以验证一个字符串是不是合法的 UUID 吗?

可以。切换到「验证」标签页,输入任意字符串,工具会自动识别并验证:标准UUID(v1/v3/v4/v5)会告知具体版本号,还支持识别ULID(26位Crockford Base32格式)和NanoID(21位URL安全字符)格式,开发调试中快速排查ID格式问题非常方便。

在线生成 UUID 会泄露到服务器吗?安全吗?

完全安全。本工具所有ID生成和验证都在你本地浏览器中通过JavaScript完成,使用crypto.getRandomValues()加密安全随机数,不会向任何服务器发送你生成的ID,也不会记录生成历史到云端。即使断网也可以正常使用,适合在企业内网和敏感项目中使用。

生成的 UUID 可以去掉连字符或转大写吗?

可以。对于UUID v1/v4/v5,工具提供两个开关:「大写」可切换输出大小写,「连字符」可去掉中间的横杠(适合在URL、配置文件或某些数据库中使用无连字符格式)。ULID和NanoID默认无连字符,也支持大小写切换。

为什么推荐用在线工具而不是命令行生成UUID?

命令行(如Linux的uuidgen、Python的uuid模块)需要开发环境支持,在线工具打开即用,无需安装任何软件。此外本工具还集成了UUID版本识别、批量导出、历史记录等增值功能,在跨设备(如帮非技术同事生成ID)或临时需要时更方便。

什么是 UUID?

UUID(Universally Unique Identifier,通用唯一识别码)是一种128位的标识符标准,由开放软件基金会(OSF)标准化,定义在 RFC 4122 中。它的目的是让分布式系统中的所有元素都能有唯一的标识信息,而不需要通过中央控制端来做ID的指定。

一个标准的UUID形如 `550e8400-e29b-41d4-a716-446655440000`,由32个十六进制数字组成,以连字符分成5段(8-4-4-4-12)。理论上UUID v4的碰撞概率约为1/10^36,即每秒生成10亿个UUID,持续约800年才会有50%概率发生一次碰撞,实际应用中可以认为是唯一的。

UUID被广泛应用于数据库主键、分布式追踪ID、请求Request-ID、日志Trace-ID、文件唯一命名、测试数据ID、会话标识等场景,几乎所有主流编程语言都内置了UUID生成库。

术语表

UUID
通用唯一识别码(Universally Unique Identifier),128位长度,RFC 4122标准,常用版本有v1(时间戳+MAC)、v4(随机)、v5(SHA-1哈希)。
GUID
全局唯一标识符(Globally Unique Identifier),微软对UUID的称呼,两者格式和用途完全相同。
ULID
按字典序可排序的唯一标识符(Universally Unique Lexicographically Sortable Identifier),26个字符,使用Crockford Base32编码,前48位为时间戳,可按创建时间排序。
NanoID
一种轻量级的唯一ID生成方案,默认21个URL安全字符(A-Za-z0-9_-),比UUID更短、更快,适合前端和URL场景使用。
UUID v1
基于时间戳和MAC地址的UUID版本,按时间可排序,但可能泄露MAC地址和生成时间,安全性低于v4。
UUID v4
完全基于随机数生成的UUID版本,使用最广,碰撞概率极低,是开发中默认选择。
UUID v5
基于SHA-1哈希的命名空间UUID版本,相同命名空间+相同名称输入会产生相同的UUID输出,适合确定性场景。
碰撞概率
两个随机生成的ID恰好相同的概率。UUID v4的碰撞概率约为170亿分之一万亿,可以在实际工程中忽略。
Crockford Base32
Douglas Crockford设计的Base32编码,使用排除了I/L/O/U的大写字母和数字,避免易混淆字符,ULID使用此编码。

UUID / ULID / NanoID 对比表

特性UUID v4ULIDNanoID
长度36字符(含连字符)/ 32字符(无连字符)26字符默认21字符
字符集16进制(0-9a-f)Crockford Base32(32个字符)URL安全(64个字符)
排序性无序(随机)按时间有序无序(随机)
URL安全需转义(含连字符和字母数字)基本安全(大写字母+数字)完全URL安全
生成速度比UUID快约60%
碰撞概率1/10^361/10^361/10^34(21位时)
典型场景数据库主键、通用ID分布式系统、日志追踪短链URL、前端标识、Cookie

各语言生成 UUID 的常用方法

语言代码
JavaScriptcrypto.randomUUID() // 现代浏览器/Node.js 19+
Pythonimport uuid; uuid.uuid4()
JavaUUID.randomUUID()
Gogithub.com/google/uuid; uuid.New()
Bash/Linuxuuidgen 或 cat /proc/sys/kernel/random/uuid

Code Examples

JavaScript 生成 UUID v4

javascript

现代浏览器和 Node.js 14.17+ 内置了 Web Crypto API,可以直接生成UUID v4,无需第三方库。

// 现代浏览器 / Node.js 19+
const id = crypto.randomUUID();
console.log(id); // "550e8400-e29b-41d4-a716-446655440000"

// Node.js 14.17 - 18.x
const crypto = require('crypto');
const id = crypto.randomUUID();

Python 批量生成 UUID

python

使用 Python 标准库 uuid 模块批量生成多个 UUID v4,适合测试数据准备。

import uuid

# 生成单个UUID
uid = uuid.uuid4()
print(uid)

# 批量生成10个
for _ in range(10):
    print(uuid.uuid4())

# 生成无连字符的大写UUID
print(uuid.uuid4().hex.upper())

Shell 命令行生成 UUID

bash

在 Linux/macOS 终端中快速生成UUID,适合shell脚本中使用。

# Linux
uuidgen

# macOS
uuidgen | tr 'A-Z' 'a-z'

# 直接从系统随机文件读取(最原始方式)
cat /proc/sys/kernel/random/uuid

Authoritative References