我想根据字符串值生成 uuid,并且还能够检查给定的 uuid(如果它是使用该字符串生成的)。我将使用它来标记我与系统实例名称一起使用的 uuid。 Go 有办法实现这一点吗?
有不同类型的 UUID(请参阅Wikipedia,尽管列表不完整)。版本5是根据用户数据生成的版本。
package main
import (
"fmt"
"github.com/google/uuid"
)
func main() {
fmt.Println(v5UUID("custom data"))
fmt.Println(v5UUID("custom data"))
fmt.Println(v5UUID("other data"))
}
func v5UUID(data string) uuid.UUID {
return uuid.NewSHA1(uuid.NameSpaceURL, []byte(data))
}
UUID 版本 5 基于命名空间 UUID。在上面的示例中使用了
uuid.NameSpaceURL
。它是一个众所周知的命名空间 UUID。您可以将其替换为您自己的静态 UUID 或 uuid.Nil
。