import random import string from passlib.pwd import genword def load_wordlist(filepath): """Loads the word list from a file.""" with open(filepath, 'r') as file: words = file.read().splitlines() return words def generate_random_password(length=12): """Generates a random password using passlib.""" return genword(length=length) def generate_pronounceable_password(length=12): """Generates a pronounceable password.""" vowels = 'aeiou' consonants = ''.join(set(string.ascii_lowercase) - set(vowels)) password = [] for _ in range(length // 2): password.append(random.choice(consonants)) password.append(random.choice(vowels)) return ''.join(password) def generate_passphrase(num_words=4, filepath='wordlist.txt'): """Generates a passphrase using words from an external file.""" wordlist = load_wordlist(filepath) password = '-'.join(random.choice(wordlist) for _ in range(num_words)) return password