commit 0fba1c611c05a161006b1035ce7889c150ec8908 Author: 7ka1 <7ka1@noreply.localhost> Date: Thu Nov 20 15:18:59 2025 +0000 Téléverser les fichiers vers "/" diff --git a/débutscriptmotdepasse.ps1 b/débutscriptmotdepasse.ps1 new file mode 100644 index 0000000..fe54d57 --- /dev/null +++ b/débutscriptmotdepasse.ps1 @@ -0,0 +1,67 @@ +import pandas as pd +import random +import string + +def generate_password(): + """ + Génère un mot de passe aléatoire de 8 caractères contenant : + - Au moins 1 majuscule + - Au moins 1 minuscule + - Au moins 1 chiffre + - Au moins 1 caractère spécial + """ + # Définition des jeux de caractères + upper = string.ascii_uppercase + lower = string.ascii_lowercase + digits = string.digits + special = string.punctuation + + # On s'assure d'avoir au moins un caractère de chaque type + password = [ + random.choice(upper), + random.choice(lower), + random.choice(digits), + random.choice(special) + ] + + # On complète les 4 caractères restants avec un mélange de tous les types + all_chars = upper + lower + digits + special + password += [random.choice(all_chars) for _ in range(4)] + + # On mélange les caractères pour que l'ordre soit aléatoire + random.shuffle(password) + + # On convertit la liste en chaîne de caractères + return "".join(password) + +def main(): + input_file = "Projet 01 - happy_koalas_employees.csv" + output_file = "happy_koalas_employees_with_passwords.csv" + + try: + # Lecture du fichier CSV (séparateur point-virgule) + print(f"Lecture du fichier {input_file}...") + df = pd.read_csv(input_file, sep=";") + + # Nettoyage des colonnes vides éventuelles + df = df.dropna(axis=1, how='all') + + # Génération des mots de passe pour chaque ligne + print("Génération des mots de passe...") + df['Password'] = df.apply(lambda x: generate_password(), axis=1) + + # Sauvegarde dans un nouveau fichier + df.to_csv(output_file, sep=';', index=False) + print(f"Succès ! Le fichier a été sauvegardé sous : {output_file}") + + # Affichage d'un aperçu + print("\nAperçu des 5 premiers utilisateurs :") + print(df[['FirstName', 'LastName', 'Password']].head()) + + except FileNotFoundError: + print(f"Erreur : Le fichier '{input_file}' est introuvable.") + except Exception as e: + print(f"Une erreur est survenue : {e}") + +if __name__ == "__main__": + main() diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..06bbef0 --- /dev/null +++ b/readme.md @@ -0,0 +1,30 @@ +# Générateur de Mots de Passe - Happy Koalas + +Ce projet contient un script Python permettant d'automatiser la création de mots de passe sécurisés pour une liste d'employés contenue dans un fichier CSV. + +## 📋 Description + +Le script lit un fichier source (`.csv`) contenant les informations des employés, génère un mot de passe unique et aléatoire pour chacun selon des critères de sécurité stricts, et exporte le résultat dans un nouveau fichier. + +### Critères de sécurité des mots de passe +Chaque mot de passe généré respecte les règles suivantes : +* **Longueur :** 8 caractères exactement. +* **Composition :** + * Au moins 1 lettre majuscule. + * Au moins 1 lettre minuscule. + * Au moins 1 chiffre. + * Au moins 1 caractère spécial (ponctuation). + +## 🛠 Prérequis + +Pour exécuter ce script, vous devez avoir installé : +* **Python 3.x** +* La bibliothèque **Pandas** + +## ⚙️ Installation + +1. **Cloner ou télécharger** les fichiers du projet. +2. **Installer les dépendances** via le terminal : + +```bash +pip install pandas \ No newline at end of file