gofrs/uuid
GitHub: gofrs/uuid
一个纯 Go 实现的 UUID 库,支持 RFC-9562 标准下多种版本 UUID 的生成与解析。
Stars: 1814 | Forks: 124
# UUID
[](https://github.com/gofrs/uuid/blob/master/LICENSE)
[](https://github.com/gofrs/uuid/actions/workflows/go.yml)
[](https://pkg.go.dev/github.com/gofrs/uuid/v5)
[](https://codecov.io/gh/gofrs/uuid/)
[](https://goreportcard.com/report/github.com/gofrs/uuid)
[](https://github.com/gofrs/uuid/actions/workflows/codeql.yml)
[](https://www.bestpractices.dev/projects/8929)
[](https://scorecard.dev/viewer/?uri=github.com/gofrs/uuid)
Package uuid 提供了 Universally Unique Identifiers
(UUID) 变体的纯 Go 实现,其定义见 RFC-9562。此 package 支持以不同格式创建
和解析 UUID。
此 package 支持以下 UUID 版本:
* 版本 1,基于时间戳和 MAC 地址
* 版本 3,基于命名值的 MD5 哈希
* 版本 4,基于随机数
* 版本 5,基于命名值的 SHA-1 哈希
* 版本 6,基于时间戳的 k-sortable id,且字段与 v1 兼容
* 版本 7,基于时间戳的 k-sortable id
* 版本 8,用于自定义 UUID 实现
## 项目历史
本项目最初 fork 自
[github.com/satori/go.uuid](https://github.com/satori/go.uuid) 仓库,因为
它似乎不再维护,并且存在[严重
缺陷](https://github.com/satori/go.uuid/issues/73)。我们决定接管
这个项目,以确保它得到定期维护,从而造福更广泛的
Go 社区。
我们要感谢 Maxim Bublis 在该 package 原始迭代中付出的辛勤
工作。
## 许可证
此 package 的源代码基于 MIT 许可证发布。请查看
[LICENSE](https://github.com/gofrs/uuid/blob/master/LICENSE) 以获取许可证的完整
内容。
## 推荐的 Package 版本
我们建议使用此 package 的 v2.0.0+ 版本,因为 2.0.0 之前的版本
是在我们 fork 原 package 之前创建的,存在一些已知的
缺陷。
## 要求
此 package 需要 Go 1.25 或更高版本
## 用法
以下是如何使用此 package 的快速概述。有关更详细的
文档,请参阅 [GoDoc 页面](http://godoc.org/github.com/gofrs/uuid)。
```
package main
import (
"log"
"github.com/gofrs/uuid/v5"
)
// Create a Version 4 UUID, panicking on error.
// Use this form to initialize package-level variables.
var u1 = uuid.Must(uuid.NewV4())
func main() {
// Create a Version 4 UUID.
u2, err := uuid.NewV4()
if err != nil {
log.Fatalf("failed to generate UUID: %v", err)
}
log.Printf("generated Version 4 UUID %v", u2)
// Parse a UUID from a string.
s := "6ba7b810-9dad-11d1-80b4-00c04fd430c8"
u3, err := uuid.FromString(s)
if err != nil {
log.Fatalf("failed to parse UUID %q: %v", s, err)
}
log.Printf("successfully parsed UUID %v", u3)
}
```
## 参考
- [RFC-9562](https://tools.ietf.org/html/rfc9562)(替代了 RFC-4122)
- [DCE 1.1:身份验证与安全服务](http://pubs.opengroup.org/onlinepubs/9696989899/chap5.htm#tagcjh_08_02_01_01)
标签:EVTX分析, 日志审计