Objectif du TP
Ce travail pratique vise à comprendre et implémenter les fonctions de hachage cryptographique MD5 et SHA1. Ces algorithmes sont essentiels pour assurer l'intégrité des données et la sécurisation des informations sensibles.
Note importante : MD5 et SHA1 sont considérés comme obsolètes pour des applications critiques de sécurité. Ce TP a un objectif pédagogique pour comprendre les principes fondamentaux du hachage.
Technologies utilisées
| Technologie | Rôle |
|---|---|
| MD5 | Algorithme de hachage produisant une empreinte de 128 bits |
| SHA1 | Algorithme générant un hash de 160 bits plus sécurisé |
| Python | Langage utilisé pour l'implémentation des algorithmes |
Compétences développées
- Compréhension des fonctions de hachage cryptographique
- Analyse de la résistance aux collisions
- Implémentation d'algorithmes de sécurité
- Évaluation des vulnérabilités cryptographiques
- Bonnes pratiques en matière de sécurité des données
Exemple de code
import hashlib
# Génération d'un hash MD5
text = "Hello World"
md5_hash = hashlib.md5(text.encode()).hexdigest()
print(f"MD5: {md5_hash}")
# Génération d'un hash SHA1
sha1_hash = hashlib.sha1(text.encode()).hexdigest()
print(f"SHA1: {sha1_hash}")Résultats obtenus
Au cours de ce TP, j'ai pu démontrer la capacité de ces algorithmes à générer des empreintes uniques pour différentes entrées, tout en comprenant leurs limites actuelles face aux attaques par collision.
J'ai également exploré les alternatives modernes comme SHA-256 et SHA-3, recommandées pour les applications nécessitant un haut niveau de sécurité.