根据 Go 中的命名空间/字符串生成 uuid

问题描述 投票:0回答:1

我想根据字符串值生成 uuid,并且还能够检查给定的 uuid(如果它是使用该字符串生成的)。我将使用它来标记我与系统实例名称一起使用的 uuid。 Go 有办法实现这一点吗?

go uuid
1个回答
0
投票

有不同类型的 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

© www.soinside.com 2019 - 2024. All rights reserved.