mirror of
https://github.com/genxium/DelayNoMore
synced 2024-12-26 03:39:00 +00:00
36 lines
578 B
Go
36 lines
578 B
Go
package utils
|
|
|
|
import (
|
|
crypto_rand "crypto/rand"
|
|
"encoding/hex"
|
|
"math/rand"
|
|
"time"
|
|
)
|
|
|
|
var Rand *privateRand
|
|
|
|
type privateRand struct {
|
|
*rand.Rand
|
|
}
|
|
|
|
func init() {
|
|
Rand = &privateRand{rand.New(rand.NewSource(time.Now().UnixNano()))}
|
|
}
|
|
|
|
func (p *privateRand) Number(numberRange ...int) int {
|
|
nr := 0
|
|
if len(numberRange) > 1 {
|
|
nr = 1
|
|
nr = p.Intn(numberRange[1]-numberRange[0]) + numberRange[0]
|
|
} else {
|
|
nr = p.Intn(numberRange[0])
|
|
}
|
|
return nr
|
|
}
|
|
|
|
func TokenGenerator(len int) string {
|
|
b := make([]byte, len/2)
|
|
crypto_rand.Read(b)
|
|
return hex.EncodeToString(b)
|
|
}
|