rand.go 548 B

12345678910111213141516171819202122232425
  1. package utilx
  2. import (
  3. "crypto/rand"
  4. "math/big"
  5. )
  6. const (
  7. charsetStr = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
  8. )
  9. // RandStr 生成指定长度的随机字符串
  10. func RandStr(length int) (string, error) {
  11. charsetLength := big.NewInt(int64(len(charsetStr)))
  12. randomString := make([]byte, length)
  13. for i := 0; i < length; i++ {
  14. randomIndex, err := rand.Int(rand.Reader, charsetLength)
  15. if err != nil {
  16. return "", err
  17. }
  18. randomString[i] = charsetStr[randomIndex.Int64()]
  19. }
  20. return string(randomString), nil
  21. }