🌐 FR

🔐 Générateur de Hash

Convertissez du texte en différents algorithmes de hachage. Utilisé pour la vérification de l'intégrité des fichiers, le hachage de mots de passe et la validation des données.

Sélectionnez un fichier pour générer le hash de son contenu
GUIDE

En savoir plus

01

1. Qu'est-ce qu'une fonction de hachage

Une fonction de hachage est une fonction à sens unique qui convertit des données de taille arbitraire en une valeur de taille fixe. Elle présente un effet d'avalanche : même un léger changement dans l'entrée produit un hash complètement différent, et la même entrée produit toujours la même sortie. MD5 génère un hash de 128 bits, SHA-1 de 160 bits et SHA-256 de 256 bits. Comme les hashs sont des fonctions à sens unique qui ne peuvent pas être déchiffrées, ils sont idéaux pour vérifier l'intégrité tout en dissimulant les données d'origine. Largement utilisés pour la vérification des téléchargements de fichiers, le stockage des mots de passe, la blockchain, les signatures numériques, etc.

02

2. Comparaison des algorithmes MD5 et SHA

MD5 est un hash de 128 bits développé en 1991, très rapide mais vulnérable aux attaques par collision. Des failles de sécurité graves découvertes en 2004 le rendent inadapté aux usages cryptographiques ; il n'est utilisé que pour les sommes de contrôle de fichiers. SHA-1 est un hash de 160 bits plus sûr que MD5, mais l'annonce par Google en 2017 de cas de collision réels a entraîné son abandon. SHA-256 appartient à la famille SHA-2, génère des hashs de 256 bits et constitue actuellement la norme la plus largement utilisée. Bitcoin utilise également SHA-256. SHA-512 offre une sécurité accrue avec 512 bits mais est plus lent. Les nouveaux systèmes doivent utiliser SHA-256 ou supérieur.

03

3. Sécurité et vulnérabilités des fonctions de hachage

Les fonctions de hachage ont trois exigences de sécurité principales. Premièrement, la résistance à la préimage : il doit être difficile de retrouver l'original à partir du hash. Deuxièmement, la résistance à la seconde préimage : il doit être difficile de trouver une autre entrée produisant le même hash. Troisièmement, la résistance aux collisions : il doit être difficile de trouver deux entrées différentes produisant le même hash. MD5 et SHA-1 ont une résistance aux collisions rompue, permettant à un attaquant de créer intentionnellement le même hash. Les attaques par table arc-en-ciel utilisent des tables de hash précalculées pour remonter à l'original, mais l'ajout d'un sel permet de s'en défendre.

04

4. Vérification de l'intégrité des fichiers

Le hash d'un fichier est le moyen le plus efficace de vérifier qu'un fichier téléchargé n'a pas été altéré. Les sites de distribution de logiciels fournissent la valeur de hash officielle avec les fichiers. Les utilisateurs calculent le hash du fichier après téléchargement et le comparent à la valeur officielle. Le moindre bit de différence produit un hash complètement différent, détectant ainsi immédiatement toute altération. Essentiel pour les images ISO Linux, les logiciels open source, les transactions blockchain, etc. Git génère également un hash SHA-1 pour chaque commit afin de garantir l'intégrité du code. Le hash permet aussi de détecter les dommages causés par des erreurs réseau lors du transfert de fichiers volumineux.

05

5. Bonnes pratiques de hachage des mots de passe

Ne stockez jamais les mots de passe en texte brut dans une base de données. Ils doivent être convertis en hash, mais un simple MD5 ou SHA-256 est inadéquat, car vulnérable aux attaques par table arc-en-ciel. Vous devez impérativement ajouter un sel. Le sel est une chaîne aléatoire ajoutée au mot de passe, faisant en sorte que le même mot de passe produise des hashs différents. Il faut en outre utiliser des fonctions de hachage lentes comme bcrypt, scrypt ou Argon2. Celles-ci ralentissent intentionnellement le calcul pour rendre les attaques par force brute plus difficiles. L'OWASP recommande Argon2 en priorité pour le hachage des mots de passe.

06

6. Tables arc-en-ciel et sel

Les tables arc-en-ciel (Rainbow Tables) sont d'immenses bases de données de valeurs de hash précalculées. Elles stockent à l'avance les hashs de millions de mots de passe courants et les comparent aux hashs volés pour retrouver les mots de passe d'origine. Par exemple, le MD5 de « password123 » est toujours « 482c811da5d5b4bc6d497ffa98491e38 », il peut donc être retrouvé immédiatement dans la table. Le sel permet de s'en défendre. En ajoutant une chaîne aléatoire unique pour chaque utilisateur, le même mot de passe produit des hashs différents. Hacher « password123 » + « x8k2m9 » produit une valeur absente des tables arc-en-ciel. Le sel peut être stocké en clair dans la base de données, mais chaque mot de passe doit utiliser un sel différent pour être efficace.