]> code.delx.au - monosys/blob - bin/passphrasegen
notes: fix raspi install notes, also @home -> @username
[monosys] / bin / passphrasegen
1 #!/usr/bin/env python3
2
3 import math
4 import random
5 import os
6
7 words_filename = os.environ.get("WORDS", "/usr/share/dict/words")
8 num_words = 5
9 max_word_len = 8
10 min_word_len = 3
11
12 words = open(words_filename)
13 words = [word.strip().lower() for word in words]
14 words = [word for word in words if word.isalpha() and min_word_len <= len(word) <= max_word_len]
15 random_words = [random.choice(words) for _ in range(num_words)]
16 entropy_words = num_words * math.log(len(words)) / math.log(2)
17
18 max_number = 100
19 min_number = 10
20 random_number = random.randint(min_number, max_number)
21 entropy_number = math.log(max_number - min_number) / math.log(2)
22
23 print("Entropy:", math.floor(entropy_words + entropy_number))
24 print("Passphrase:", " ".join(random_words + [str(random_number)]))