package utils

import (
	"bytes"
	"crypto/rand"
	"math/big"
)

type random struct{}

func Random() random {
	return random{}
}

// RandStr
// @description: 随机字符串
// @receiver random
// @param len
// @return string
func (random) RandStr(len int) string {
	var container string
	var str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
	b := bytes.NewBufferString(str)
	length := b.Len()
	bigInt := big.NewInt(int64(length))
	for i := 0; i < len; i++ {
		randomInt, _ := rand.Int(rand.Reader, bigInt)
		container += string(str[randomInt.Int64()])
	}
	return container
}