github.com/whatap/golib@v0.0.22/util/keygen/KeyGen.go (about)

     1  //github.com/whatap/golib/util/keygen
     2  package keygen
     3  
     4  import (
     5  	"math"
     6  	"math/rand"
     7  	"time"
     8  )
     9  
    10  // Import 에서 초기화
    11  func init() {
    12  	Seed()
    13  }
    14  
    15  func Seed() {
    16  	rand.Seed(time.Now().UnixNano())
    17  }
    18  
    19  func AddSeed(v ...interface{}) {
    20  	seed := time.Now().UnixNano()
    21  	for _, it := range v {
    22  		switch it.(type) {
    23  		case int8, int16, int32, int64:
    24  		case uint8, uint16, uint32, uint64:
    25  		case float32, float64:
    26  			seed += it.(int64)
    27  		}
    28  	}
    29  	rand.Seed(seed)
    30  }
    31  func SetSeed(i int64) {
    32  	rand.Seed(i)
    33  }
    34  func Next() int64 {
    35  	v := rand.NormFloat64()
    36  	return int64(math.Float64bits(v))
    37  }
    38  func RandInt(i int32) int32 {
    39  	return rand.Int31n(i)
    40  }
    41  func RandLong(i int64) int64 {
    42  	return rand.Int63n(i)
    43  }