gopkg.in/essentialkaos/ek.v3@v3.5.1/crypto/uuid.go (about) 1 package crypto 2 3 // ////////////////////////////////////////////////////////////////////////////////// // 4 // // 5 // Copyright (c) 2009-2016 Essential Kaos // 6 // Essential Kaos Open Source License <http://essentialkaos.com/ekol?en> // 7 // // 8 // ////////////////////////////////////////////////////////////////////////////////// // 9 10 import ( 11 "crypto/rand" 12 "fmt" 13 ) 14 15 // ////////////////////////////////////////////////////////////////////////////////// // 16 17 // GenUUID generate UUID (Universally Unique Identifier) 18 func GenUUID() string { 19 uuid := make([]byte, 16) 20 21 rand.Read(uuid) 22 23 uuid[6] = (uuid[6] & 0x0f) | 0x40 24 uuid[8] = (uuid[8] & 0x3f) | 0x80 25 26 return fmt.Sprintf("%x-%x-%x-%x-%x", uuid[0:4], uuid[4:6], uuid[6:8], uuid[8:10], uuid[10:]) 27 }