pwd.go 946 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package pwd
  2. import (
  3. "fmt"
  4. "math/rand"
  5. )
  6. const (
  7. NumStr = "0123456789"
  8. CharStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
  9. SpecStr = "+=-@#~,.[]()!%^*$"
  10. )
  11. type Mode int
  12. const (
  13. MixMode Mode = 0
  14. NumMode Mode = 1
  15. CharMode Mode = 2
  16. )
  17. const (
  18. DefaultMode = MixMode
  19. DefaultLength = 16
  20. )
  21. func DefaultGenerate() string {
  22. return Generate(DefaultMode, DefaultLength)
  23. }
  24. func Generate(m Mode, length int) string {
  25. if length < 1 {
  26. length = DefaultLength
  27. }
  28. var passwd = make([]byte, length)
  29. var sourceStr string
  30. if m == NumMode {
  31. sourceStr = NumStr
  32. } else if m == CharMode {
  33. sourceStr = CharStr
  34. } else {
  35. sourceStr = fmt.Sprintf("%s%s%s", NumStr, CharStr, SpecStr)
  36. }
  37. for i := 0; i < length; i++ {
  38. index := rand.Intn(len(sourceStr))
  39. passwd[i] = sourceStr[index]
  40. }
  41. return string(passwd)
  42. }
  43. func ConvertName(list []string) string {
  44. var str = ""
  45. for _, s := range list {
  46. str += s
  47. }
  48. return str
  49. }