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  }