« A portée de main, toutes les informations sur mon parcours. »


BTS Services Informatiques aux Organisations, un parcours passionnant au cœur des technologies et de l’innovation.

createPassword.py

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 random
import string
import csv
lowercase = 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 liste
def contains_blacklist(password):
password_lower = password.lower()
for word in blacklist_words:
if word in password_lower:
return True
return False
def 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_str
def 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}.")