Advertisement
Guest User

Untitled

a guest
Jun 19th, 2019
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.12 KB | None | 0 0
  1. #!/usr/bin/env python3
  2.  
  3. import secrets
  4. import string
  5. import sys
  6. import os
  7.  
  8.  
  9. def generate_passphrase(word_index, size):
  10. words = []
  11. for _ in range(size):
  12. index = generate_index()
  13. words.append(word_index[index])
  14.  
  15. return ' '.join(words)
  16.  
  17.  
  18. def generate_index():
  19. index = ""
  20. for _ in range(5):
  21. index += str(secrets.randbelow(6) + 1)
  22. return index
  23.  
  24.  
  25. def get_index_and_word(line):
  26. index, word = tuple(filter(lambda part: part != '', line.strip().split('\t')))
  27. return index, word
  28.  
  29.  
  30. def build_word_index(word_file):
  31. words = {}
  32. for line in word_file:
  33. index, word = get_index_and_word(line)
  34. words[index] = word
  35. return words
  36.  
  37.  
  38. def get_wordlist_path():
  39. homepath = os.getenv('HOME')
  40. return f"{homepath}/.local/share/ppgen/eff_large_wordlist.txt"
  41.  
  42.  
  43. def main():
  44. size = 4 if len(sys.argv) < 2 else int(sys.argv[1])
  45.  
  46. wordlist_path = get_wordlist_path()
  47.  
  48. with open(wordlist_path) as word_file:
  49. word_index = build_word_index(word_file)
  50. passphrase = generate_passphrase(word_index, size)
  51. print(passphrase)
  52.  
  53.  
  54. if __name__ == "__main__":
  55. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement