← Retour à l'accueil

Gestion de ses mots de passe avec Python

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())
#python #sécurité #bash
← Retour à l'accueil