Ce script génère des mots de passe sécurisés d’au moins 12 caractères en mélangeant lettres et caractères spéciaux, évite certains mots faibles, et les enregistre dans un fichier CSV. Il garantit des mots de passe uniques et aléatoires selon le nombre demandé par l’utilisateur.
import randomimport stringimport csvlowercase = string.ascii_lowercase.replace('o', '')uppercase = string.ascii_uppercase.replace('O', '')digits = string.digits.replace('0', '')special_chars = "!@#$%&*+=.-<>/?:"blacklist_words = ["password", "123456", "qwerty", "letmein", "admin", "welcome"] #idéalement lier un dictionnaire contenant 1 listedef contains_blacklist(password): password_lower = password.lower() for word in blacklist_words: if word in password_lower: return True return Falsedef generate_password(): while True: password = [ random.choice(lowercase), random.choice(lowercase), random.choice(uppercase), random.choice(uppercase), random.choice(digits), random.choice(digits), random.choice(special_chars), random.choice(special_chars), ] password += random.choices(lowercase + uppercase + digits + special_chars, k=4) random.shuffle(password) password_str = ''.join(password) if contains_blacklist(password_str): continue if len(password_str) >= 12: return password_strdef generate_csv(num_passwords, filename): passwords = set() while len(passwords) < num_passwords: password = generate_password() passwords.add(password) with open(filename, 'w', newline='') as file: writer = csv.writer(file) writer.writerow(["password"]) for password in passwords: writer.writerow([password])if __name__ == "__main__": num_passwords = int(input("Combien de mots de passe voulez-vous générer ? ")) filename = "usersPassword2.csv" generate_csv(num_passwords, filename) print(f"{num_passwords} mots de passe générés et enregistrés dans {filename}.")