Генерация пароля

  1. package main
  2.  
  3. import (
  4.     "fmt"
  5.     "math/rand"
  6.     "strings"
  7.     "time"
  8. )
  9.  
  10. /* settings */
  11. const (
  12.     parts        = 3
  13.     charsPerPart = 6
  14.     delimiter    = "-"
  15. )
  16.  
  17. // l and I, O and 0 are excluded
  18. var chars = "abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYX123456789"
  19.  
  20. func main() {
  21.     r := rand.New(rand.NewSource(time.Now().UnixNano()))
  22.     pass := make([]string, parts)
  23.     for k := range pass {
  24.         for i := 0; i < charsPerPart; i++ {
  25.             pass[k] += string(chars[r.Intn(len(chars))])
  26.         }
  27.     }
  28.     fmt.Println(strings.Join(pass, delimiter))
  29. }
Есть возможность настроить сложность константами parts и charsPerPart, похожие символы (I, l, 0, O) не генерируются. Пример работы: https://play.golang.org/p/jAl2HVTiHHf

Реклама

Мы в соцсетях

tw tg yt gt