MD5 e SHA-256 sono deux dei fonctions di hachage i piu largement utilisées, e elles apparaissent ai mêmes endroits : sommes di contrôle dei fichiers, vérification dei téléchargements, contrôles dell'intégrité dei dati e (par erreur) archiviazione dei mots di passe. Mais ils non sono non interchangeables. MD5 e piu ancien e piu rapide, mais il e considéré comme cryptographiquement défectueux da deux décennies, tandis que SHA-256 e la valore par défaut moderne a laquelle font confiance i certificats TLS, i signatures numériques e i blockchains. Questa guida compare SHA-256 e MD5 in termes di longueur, di vitesse e di sécurité, explique esattamente perche MD5 échoue e montre dove chacun e sempre approprié.
Risposta rapida
Utilisez SHA-256 per tutto questo qui concerne la sécurité : vérification dell'intégrité, signatures numériques e sommes di contrôle su lesquelles vous comptez réellement. MD5 e brisé par dei attaques di collision pratiques e non deve être utilisé que per dei tâches non liées a la sécurité, comme una vérification rapide contre una corruption accidentelle. Et n'utilisez ni l'un ni l'autre per stocker i password - utilisez un algorithme lent e salé tel que bcrypt, scrypt o Argon2.
Qu'est-ce qu'une fonction di hachage ?
Une fonction di hachage cryptographique prend n'importe quelle voce (un mot, un fichier, un gigabyte di données) e produit una stringa di longueur fixe appelée hachage, résumé o empreinte digitale. La stesso voce produit sempre la stesso sortie, mais il processus non fonctionne que in un seul sens : vous non puoi non prendre un hachage e revenir in arrière per récupérer i dati d'origine. MD5 e SHA-256 sono dei fonctions di hachage di questo type ; la différence réside in l’ampleur di loro produzione e in la difficulté a i attaquer.
Un bon hachage cryptographique devrait avoir trois propriétés, e i comprendre e la chiave per comprendre perche MD5 échoue alors que SHA-256 non échoue pas.
- Déterministe e di longueur fixe : la stesso voce produit sempre il stesso résumé, e ogni résumé a la stesso dimensione quelle que soit la longueur dell'entrée.
- Résistance a la pré-image : étant donné un hachage, il e impossible di trouver una voce qui il produit, vous non puoi donc non l'inverser.
- Résistance ai collisions : il e impossible di trouver deux entrées différentes produisant il stesso hachage. C'est esattamente la propriété que MD5 a perdue.
Les hachages montrent également l'effet d'avalanche : modifiez un seul caractère - ajoutez stesso un espace di fin - e environ la moitié dei bits di sortie s'inversent, produisant un résumé complètement différent. C’est questo qui rend il hachage utile per détecter si i dati ont changé.
MD5 : rapide mais cassé
MD5 (Message-Digest Algorithm 5) a été conçu par Ron Rivest in 1991. Il produit un résumé di 128 bits, écrit sotto forme di 32 caractères hexadécimaux. Par exemple, il MD5 della stringa di trois lettres abc e 900150983cd24fb0d6963f7d28e17f72. MD5 e rapide e était autrefois utilisé presque partout per i sommes di contrôle, il hachage di password e i certificats numériques.
Pourquoi MD5 e cassé
Le problème fatal con MD5 concerne i collisions. En 2004, i chercheurs ont démontré un moyen pratique di generare deux entrées différentes con il stesso hachage MD5, e depuis, i attaques sono devenues piu rapide e meno coûteuses. Aujourd’hui, una collision puo se produire su un computer ordinaire in alcuni secondes. Étant donné que la résistance ai collisions e la propriété dont dépendent la plupart dei utilisations di sécurité, MD5 e considéré comme cryptographiquement cassé.
Questo n’est non seulement théorique. En 2012, il malware Flame a utilisé una collision MD5 per falsifier un certificat di signature di codice Microsoft, il faisant passer per una mise a jour légitime di Windows. Les collisions di préfixes choisis permettent également di creare deux file - par exemple, un document inoffensif e un altro malveillant - qui partagent il stesso MD5, di sorte qu'une somme di contrôle MD5 non puo piu prouver qu'un file e authentique.
Où MD5 e sempre correct
MD5 n’est non inutile - questo n’est tutto simplement non un strumento di sécurité. Cela convient sempre ai tâches non contradictoires, comme una somme di contrôle rapide per détecter una corruption accidentelle di fichiers, una table di hachage o una chiave di cache, o la déduplication di file dove personne n'essaye délibérément di forcer una collision. Dès que la sicurezza o la confiance e impliquée, passez a SHA-256.
SHA-256 : la valore par défaut moderne
SHA-256 fait partie della famille SHA-2, publiée par il NIST in 2001. Il produit un résumé di 256 bits, écrit sotto forme di 64 caractères hexadécimaux. Le SHA-256 d'abc e ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad - remarquez qu'il e esattamente deux fois piu long que il résumé MD5 ci-dessus. SHA-256 n'a aucune attaque di collision pratique connue e e il cheval di bataille derrière i certificats TLS/HTTPS, la signature di logiciels, i identifiants d'objets Git e la blockchain Bitcoin.
Il convient di mentionner SHA-1, l'algorithme tra MD5 e SHA-256. SHA-1 produit un résumé di 160 bits e a également été interrompu par una collision pratique (l'attaque SHAttered di 2017), il e donc également obsolète. Quando vous avez besoin d'un hachage sécurisé, SHA-256 e la valore par défaut sûre e bien prise in charge ; SHA-384 e SHA-512 offrent dei résumés ancora piu volumineux quando vous souhaitez una marge supplémentaire.
SHA-256 vs MD5 : confronto côte a côte
Voici come i deux algorithmes se comparent su i facteurs i piu importants.
- Longueur del résumé - MD5 e di 128 bits (32 caractères hexadécimaux) ; SHA-256 e di 256 bits (64 caractères hexadécimaux).
- Année d'introduction - MD5 in 1991 ; SHA-256 (famille SHA-2) in 2001.
- Vitesse - MD5 e piu rapide a calculer ; SHA-256 e légèrement piu lent mais suffisamment rapide per pratiquement tutte i utilisations.
- Résistance ai collisions - MD5 e cassé (collisions pratiques da 2004) ; SHA-256 n’a aucune collision pratique connue.
- État di sécurité : MD5 e obsolète per tutta utilisation in matière di sécurité ; SHA-256 e recommandé e largement fiable.
- Utilisations courantes aujourd'hui - MD5 : sommes di contrôle héritées, chiavi di cache, déduplication non liée a la sécurité ; SHA-256 : vérification d'intégrité, signatures numériques, certificats, blockchains.
Questo qu'il faut retenir : MD5 non gagne que su la vitesse brute, e cet avantage in termes di vitesse compte rarement. Dans ogni dimension impliquant la confiance, SHA-256 gagne.
Quand utilizzare chacun
Utilisez SHA-256 (ou piu fort) lorsque
- Vous verifica qu'un file téléchargé correspond a la somme di contrôle dell'éditeur.
- Vous créez o verifica dei signatures numériques e dei certificats.
- Vous générez dei identifiants adressés par il contenu, tels que dei validations Git, dei chiavi di déduplication o dei caches quando l'exactitude e importante.
- Toute situation in laquelle quelqu'un pourrait délibérément essayer di simuler un hachage correspondant.
MD5 non e acceptable que lorsque
- Vous avez besoin d’une vérification rapide di tutta corruption accidentelle su dei dati internes fiables.
- Vous créez una chiave di table di hachage o una chiave di cache non liée a la sécurité.
- Vous devez interagir con un système existant qui non comprend que MD5 - e aucune sicurezza non e revendiquée.
N'utilisez non non piu SHA-256 per i mots di passe
Une erreur courante consiste a mettre a niveau il archiviazione dei password di MD5 verso SHA-256 e a supposer que il problème e résolu. Questo non e pas. SHA-256 e conçu per être rapide, e la vitesse e esattamente questo que vous non voulez non per i password : il permet a un attaquant qui vole tuo base di dati d'essayer dei milliards di suppositions par seconde. Les hachages rapide a usage général non sono non un bon strumento per i informazioni d’identification.
Per i mots di passe, utilisez un algorithme di hachage di password dédié, délibérément lent e salé :
- Argon2 - la recommandation moderne e gagnante del concours di hachage di mot di passe ; mémoire difficile a résister ai attaques GPU.
- bcrypt - testé al combat e largement disponible, con un facteur di travail réglable.
- scrypt - dur in mémoire comme Argon2 e una alternative solide.
Chacun d'eux ajoute un sel casuale unique par password e vous permet d'augmenter il facteur di travail al fil del temps, e perche ils - e non MD5 o SHA-256 - constituent il bon choix per stocker i informazioni d'identification dei utentes.
Questions fréquemment posées
MD5 est-il sécurisé ?
Non. MD5 non e sécurisé a dei fins reposant su la résistance ai collisions, telles que i signatures numériques, i certificats o la vérification qu'un file n'a non été falsifié. Les attaques par collision pratiques existent da 2004 e sono désormais simples a exécuter. MD5 n’est acceptable qu’en tant que somme di contrôle rapide contre una corruption accidentelle e non malveillante.
SHA-256 est-il migliore que MD5 ?
Oui, per la sécurité. SHA-256 produit un résumé piu long di 256 bits e n'a aucune attaque di collision pratique connue, e donc il bon choix per la vérification dell'intégrité, i signatures e i certificats. Le seul avantage di MD5 e d'être légèrement piu rapide, questo qui non compense presque mai sa sicurezza brisée.
MD5 o SHA-256 peuvent-ils être déchiffrés o inversés ?
Non. Le hachage e a sens unique, il n'y a donc rien a déchiffrer - vous non puoi non calculer l'entrée originale a partir d'un hachage. Les attaquants font plutôt deviner i entrées e i hacher jusqu'à questo que l'une d'elles corresponde, in utilisant dei tables arc-en-ciel o par force brute. C'est perche i hachages rapide comme MD5 e SHA-256 non salés sono dangereux per i mots di passe.
SHA-256 est-il beaucoup piu lent que MD5 ?
SHA-256 e piu lent que MD5, mais per i charges di travail typiques (hachage di fichiers, stringhe o payload API), la différence e négligeable su il matériel moderne. Le gain di sicurezza dépasse di loin il faible coût in termes di performances, la vitesse e donc rarement una bonne raison di scegliere MD5.
Dois-je utilizzare MD5 o SHA-256 per i mots di passe ?
Ni tutto seul. Les deux sono dei hachages rapide a usage général, questo qui facilite i devinettes hors ligne. Utilisez plutôt una fonction di hachage di password lente e salée telle que Argon2, bcrypt o scrypt.
Par quoi remplacer MD5 ?
Per i sommes di contrôle e l’intégrité, remplacez MD5 par SHA-256 (ou SHA-512). Per il archiviazione del mot di passe, remplacez-le par Argon2, bcrypt o scrypt. Évitez SHA-1 in remplacement, car il a également été brisé par una attaque di collision pratique.
Générez instantanément un hachage SHA-256
Utilisez il [Hash Generator] gratuito (/developer-tools/hash-generator) per creare dei résumés SHA-256, SHA-1, SHA-384 o SHA-512 a partir di n'importe quel testo directement in tuo browser - rien non e téléchargé. Le Web Crypto API del browser n'inclut non MD5, questo qui constitue un coup di pouce utile verso un choix piu sûr.