uuid.go 372 B

123456789101112131415161718192021
  1. package uuid
  2. import (
  3. "crypto/rand"
  4. "fmt"
  5. )
  6. // GenerateUUID is used to generate a random UUID
  7. func GenerateUUID() string {
  8. buf := make([]byte, 16)
  9. if _, err := rand.Read(buf); err != nil {
  10. panic(fmt.Errorf("failed to read random bytes: %v", err))
  11. }
  12. return fmt.Sprintf("%08x-%04x-%04x-%04x-%12x",
  13. buf[0:4],
  14. buf[4:6],
  15. buf[6:8],
  16. buf[8:10],
  17. buf[10:16])
  18. }