diff options
Diffstat (limited to 'utils/RandomId.go')
| -rw-r--r-- | utils/RandomId.go | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/utils/RandomId.go b/utils/RandomId.go new file mode 100644 index 0000000..09f089d --- /dev/null +++ b/utils/RandomId.go @@ -0,0 +1,19 @@ +package utils + +import ( + "crypto/rand" + "fmt" +) + +func RandomId() string { + uuid := make([]byte, 16) + _, err := rand.Read(uuid) + if err != nil { + panic(err) + } + + uuid[8] = uuid[8]&^0xc0 | 0x80 + uuid[6] = uuid[6]&^0xf0 | 0x40 + + return fmt.Sprintf("%x-%x-%x-%x-%x", uuid[0:4], uuid[4:6], uuid[6:8], uuid[8:10], uuid[10:]) +} |
