68 lines
2.1 KiB
PowerShell
68 lines
2.1 KiB
PowerShell
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()
|