1. Protéger ses comptes contre le piratage
Les attaques par force brute et les fuites de bases de données sont de plus en plus fréquentes. Un mot de passe faible peut être cassé en quelques secondes avec des outils automatisés.
2. Réduire les risques en cas de fuite de données
Si vous utilisez le même mot de passe sur plusieurs sites, une seule fuite de données peut compromettre tous vos comptes. Il est donc essentiel d'utiliser des mots de passe uniques et complexes.
3. Éviter les attaques par ingénierie sociale
Les mots de passe simples basés sur des informations personnelles (nom, date de naissance, etc.) sont faciles à deviner. Un mot de passe généré aléatoirement est beaucoup plus difficile à compromettre.
Pourquoi stocker ses mots de passe de manière sécurisée ?
1. Éviter d'oublier ses mots de passe
Avec des mots de passe complexes et uniques, il devient difficile de les retenir. Un gestionnaire de mots de passe est donc indispensable.
2. Sécuriser leur stockage
Stocker ses mots de passe en clair dans un fichier texte ou une note est une très mauvaise idée. Une solution plus sécurisée consiste à les stocker dans un fichier chiffré ou un coffre-fort numérique.
Créer un générateur de mots de passe sécurisé avec Python
1. Installer les prérequis
python -m venv venv
source venv/bin/activate # Linux / Mac
venv\Scripts\activate # Windows
Assurez-vous d'avoir Python installé (3.x recommandé).
2. Script Python pour générer des mots de passe
import random
import string
def generate_password(length=16):
\"\"\" Génère un mot de passe sécurisé de la longueur spécifiée. \"\"\"
characters = string.ascii_letters + string.digits + string.punctuation
password = ''.join(random.choice(characters) for _ in range(length))
return password
def save_password(service, password, filename=\"passwords.txt\"):
\"\"\" Enregistre le mot de passe dans un fichier texte de manière sécurisée. \"\"\"
with open(filename, \"a\") as file:
file.write(f\"{service} : {password}\\n\")
print(f\"Mot de passe enregistré pour {service} !\")
if __name__ == \"__main__\":
service = input(\"Entrez le nom du service : \")
length = int(input(\"Longueur du mot de passe : \"))
password = generate_password(length)
print(f\"Mot de passe généré : {password}\")
save_password(service, password)
3. Exécuter le script
python password_generator.py
Amélioration : stocker les mots de passe de manière chiffrée
Installez la bibliothèque cryptography
:
pip install cryptography
Voici un exemple modifié avec chiffrement :
from cryptography.fernet import Fernet
def generate_key():
\"\"\" Génère une clé de chiffrement et la sauvegarde. \"\"\"
key = Fernet.generate_key()
with open(\"key.key\", \"wb\") as key_file:
key_file.write(key)
def load_key():
\"\"\" Charge la clé de chiffrement depuis un fichier. \"\"\"
return open(\"key.key\", \"rb\").read()
def encrypt_password(password):
\"\"\" Chiffre le mot de passe. \"\"\"
key = load_key()
cipher = Fernet(key)
return cipher.encrypt(password.encode())
def save_password(service, password):
\"\"\" Sauvegarde le mot de passe chiffré. \"\"\"
encrypted_password = encrypt_password(password)
with open(\"passwords_encrypted.txt\", \"ab\") as file:
file.write(f\"{service} : {encrypted_password}\\n\".encode())