Go: Generate a random UUID (GUID)
Use the rand.Read
function from package crypto/rand
to generate a universally unique identifier:
b := make([]byte, 16)
_, err := rand.Read(b)
if err != nil {
log.Fatal(err)
}
uuid := fmt.Sprintf("%x-%x-%x-%x-%x", b[0:4], b[4:6], b[6:8], b[8:10], b[10:])
Note that his UUID doesn't conform to RFC 4122. In particular, it doesn't contain any version or variant numbers.
The rand.Read
call returns an error if the underlying system call fails. For instance if the runtime can't read /dev/urandom
on a *nix system or if CryptAcquireContext
fails on a Windows system.
Comments
Be the first to comment!