跳转至

生成UUID

概要: 使用go语言生成uuid

创建时间: 2022.08.24 20:59:32

更新时间: 2023.08.16 22:27:26

方式

本文使用 gofrs/uuid 包,生成随机数,包含以下四种:

  • Version 1, based on timestamp and MAC address (RFC-4122)
  • Version 3, based on MD5 hashing of a named value (RFC-4122)
  • Version 4, based on random numbers (RFC-4122)
  • Version 5, based on SHA-1 hashing of a named value (RFC-4122)

下面演示v1和v4

  1. v1: 使用本机的时间和Mac地址生成uuid
  2. v4: ;使用纯随机数生成uuid

Go源码

Go
package main

import (
    "fmt"
    "github.com/gofrs/uuid"
)

func main() {
    // V1: 时间+Mac地址
    id, err := uuid.NewV1()
    if err != nil {
        fmt.Printf("uuid NewUUID err:%+v", err)
    }
    // id: c0216586-27ac-11e1-9fe0-acde48001122 length: 36
    fmt.Println("id:", id.String(), "length:", len(id.String()))

    // V4: 纯随机数
    id, err = uuid.NewV4()
    if err != nil {
        fmt.Printf("uuid NewUUID err:%+v", err)
    }
    // id: 083c8325-b23b-4d38-bac5-3a50ca1bee7c length: 36
    fmt.Println("id:", id.String(), "length:", len(id.String()))
}

参考