| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- package pwd
- import (
- "fmt"
- "math/rand"
- )
- const (
- NumStr = "0123456789"
- CharStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
- SpecStr = "+=-@#~,.[]()!%^*$"
- )
- type Mode int
- const (
- MixMode Mode = 0
- NumMode Mode = 1
- CharMode Mode = 2
- )
- const (
- DefaultMode = MixMode
- DefaultLength = 16
- )
- func DefaultGenerate() string {
- return Generate(DefaultMode, DefaultLength)
- }
- func Generate(m Mode, length int) string {
- if length < 1 {
- length = DefaultLength
- }
- var passwd = make([]byte, length)
- var sourceStr string
- if m == NumMode {
- sourceStr = NumStr
- } else if m == CharMode {
- sourceStr = CharStr
- } else {
- sourceStr = fmt.Sprintf("%s%s%s", NumStr, CharStr, SpecStr)
- }
- for i := 0; i < length; i++ {
- index := rand.Intn(len(sourceStr))
- passwd[i] = sourceStr[index]
- }
- return string(passwd)
- }
- func ConvertName(list []string) string {
- var str = ""
- for _, s := range list {
- str += s
- }
- return str
- }
|