Guest User

Untitled

a guest
Apr 20th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.77 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "bufio"
  5. "bytes"
  6. "flag"
  7. "io"
  8. "os"
  9. )
  10.  
  11. // StrongChars point to some strong chars for password
  12. var StrongChars = []byte{'!', '_', '-', '&', '?'}
  13.  
  14. func isStrongChar(b byte) bool {
  15. for _, c := range StrongChars {
  16. if c == b {
  17. return true
  18. }
  19. }
  20. return false
  21. }
  22.  
  23. func main() {
  24. n := flag.Int("n", 100, "byte number")
  25. flag.Parse()
  26.  
  27. file, err := os.OpenFile("/dev/urandom", os.O_RDONLY, 644)
  28. if err != nil {
  29. panic(err)
  30. }
  31.  
  32. buff := make([]byte, *n)
  33. reader := bufio.NewReader(file)
  34. for *n > 0 {
  35. b, err := reader.ReadByte()
  36. if err != nil {
  37. continue
  38. }
  39. if (b >= 'a' && b <= 'z') || (b >= 'A' && b <= 'Z') || (b >= '0' && b <= '9') || isStrongChar(b) {
  40. *n--
  41. buff[*n] = b
  42. }
  43. }
  44. buff[len(buff)-1] = '\n'
  45. io.Copy(os.Stdout, bytes.NewReader(buff))
  46.  
  47. }
Add Comment
Please, Sign In to add comment