random_string.go 644 B

123456789101112131415161718192021222324252627
  1. package utils
  2. import (
  3. "math/rand"
  4. "time"
  5. )
  6. const charset = "abcdefghijklmnopqrstuvwxyz" +
  7. "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
  8. var seededRand *rand.Rand = rand.New(
  9. rand.NewSource(time.Now().UnixNano()))
  10. // StringWithCharset returns a random string by pulling from a given charset
  11. func StringWithCharset(length int, charset string) string {
  12. b := make([]byte, length)
  13. for i := range b {
  14. b[i] = charset[seededRand.Intn(len(charset))]
  15. }
  16. return string(b)
  17. }
  18. // String returns a random string, pulling from a standard alphanumeric charset
  19. // [a-zA-Z0-9]
  20. func String(length int) string {
  21. return StringWithCharset(length, charset)
  22. }