utils.go 625 B

123456789101112131415161718192021222324252627
  1. package kubernetes
  2. import (
  3. "crypto/rand"
  4. "math/big"
  5. )
  6. const charset = "abcdefghijklmnopqrstuvwxyz" +
  7. "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
  8. func stringWithCharset(length int, charset string) (string, error) {
  9. b := make([]byte, length)
  10. for i := range b {
  11. idx, err := rand.Int(rand.Reader, big.NewInt(int64(len(charset))))
  12. if err != nil {
  13. return "", err
  14. }
  15. b[i] = charset[idx.Int64()]
  16. }
  17. return string(b), nil
  18. }
  19. // RandomString returns a random string, pulling from a standard alphanumeric charset
  20. // [a-zA-Z0-9]
  21. func RandomString(length int) (string, error) {
  22. return stringWithCharset(length, charset)
  23. }