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 }