#!/usr/bin/env python3 import math import random import os words_filename = os.environ.get("WORDS", "/usr/share/dict/words") num_words = 5 max_word_len = 8 min_word_len = 3 words = open(words_filename) words = [word.strip().lower() for word in words] words = [word for word in words if word.isalpha() and min_word_len <= len(word) <= max_word_len] random_words = [random.choice(words) for _ in range(num_words)] entropy_words = num_words * math.log(len(words)) / math.log(2) max_number = 100 min_number = 10 random_number = random.randint(min_number, max_number) entropy_number = math.log(max_number - min_number) / math.log(2) print("Entropy:", math.floor(entropy_words + entropy_number)) print("Passphrase:", " ".join(random_words + [str(random_number)]))