string.go 610 B

12345678910111213141516171819202122232425262728
  1. package random
  2. import (
  3. "math/rand"
  4. "strings"
  5. )
  6. const (
  7. Uppercase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  8. Lowercase = "abcdefghijklmnopqrstuvwxyz"
  9. Alphabetic = Uppercase + Lowercase
  10. Numeric = "0123456789"
  11. Alphanumeric = Alphabetic + Numeric
  12. Symbols = "`" + `~!@#$%^&*()-_+={}[]|\;:"<>,./?`
  13. Hex = Numeric + "abcdef"
  14. )
  15. func String(length uint8, charsets ...string) string {
  16. charset := strings.Join(charsets, "")
  17. if charset == "" {
  18. charset = Alphanumeric
  19. }
  20. b := make([]byte, length)
  21. for i := range b {
  22. b[i] = charset[rand.Int63()%int64(len(charset))]
  23. }
  24. return string(b)
  25. }