# UUID 与 ULID 生成器

批量生成 UUID v4、UUID v7 和 ULID,或粘贴一个 ID 查看其版本、变体和时间戳。

https://codeknife.dev/zh/uuid-shengcheng/

## 它能做什么

批量生成 UUID 和 ULID，或粘贴一个已有的 ID 来读取它的版本、变体和时间戳。ID 由你浏览器的安全随机数生成器生成，绝不会离开你的设备。

## 如何使用

1. 选择 **UUID v4**（完全随机）、**UUID v7**（按时间排序）或 **ULID**（按时间排序，26 个字符）。
2. 设置需要的数量，然后选择是否使用大写字母和连字符。
3. 点击**生成**。ID 会出现在输入框中，每行一个，每个 ID 的详细信息显示在输出中。
4. 也可以粘贴你自己的 ID（每行一个）来检查。花括号、`urn:uuid:` 前缀和缺少的连字符都可以接受。

## 示例

一个版本 7 的 UUID，以及工具从中读取到的信息：

```
017f22e2-79b0-7cc3-98c4-dc0c0c07398f
v7 · RFC 9562 · 2022-02-22T19:22:22.000Z
```

## 须知

- 版本 7 和 ULID 以毫秒时间戳开头，所以它们会按创建顺序排序，这能让数据库索引保持紧凑。
- 在同一毫秒内生成的 ID 会递增，因此既保持唯一，也保持有序。
- 版本 4 不会透露它是何时生成的。
- 全零的空 UUID（nil）和全一的最大 UUID（max）会被识别为特殊值。

## 什么是 UUID 和 ULID?

UUID 是一个 128 位的标识符,可以在任何地方无需协调地生成。版本 4 完全随机。版本 7 以毫秒时间戳开头,因此 ID 按创建顺序排序,数据库索引也更紧凑。ULID 用 26 个字符承载与 UUID 版本 7 相同的信息。

## 常见问题

### 数据库主键应该用哪一种?

优先选择版本 7 或 ULID:两者都按创建时间排序,新行会追加到末尾,而不是分散在索引各处。如果 ID 不应泄露创建时间,请使用版本 4。

### 两个 ID 会冲突吗?

版本 4 有 122 位随机数,冲突几乎不可能。版本 7 和 ULID 把时间戳与随机位结合,同一毫秒内的 ID 会依次递增,从而保持唯一和有序。

### 这个工具会把我的 ID 发送到别处吗?

不会。ID 由浏览器的安全随机数生成器生成,并在你的设备上检查。你输入的内容不会发送到我们的服务器。