Calculateur SHA-256 et SHA-512
Calculez l'empreinte SHA-256 (64 caractères) ou SHA-512 (128 caractères) de n'importe quel fichier, directement dans votre navigateur.
[1] SÉLECTIONNER FICHIER(S) À HACHER
Un fichier, plusieurs, ou deux à comparer.
[2] CHOISISSEZ VOTRE FONCTION DE HACHAGE
[3] LANCER LE PROCESSUS DE HACHAGE
À protéger : chiffrez-le localement avec CryptFile.Online (en anglais)
SHA-256 en bref
SHA-256 appartient à la famille SHA-2, conçue par la NSA et publiée par le NIST en 2001. La famille a été normalisée dans FIPS 180-2, et sa version en vigueur est la norme FIPS 180-4. SHA-256 en est le membre le plus utilisé : il travaille sur des mots de 32 bits, traite des blocs de 512 bits en 64 tours, et produit une empreinte de 256 bits, soit 64 caractères hexadécimaux.
À ce jour, aucune collision SHA-256 n'a jamais été trouvée, et aucune attaque connue ne s'en approche. C'est la raison pour laquelle SHA-256 est devenu l'algorithme par défaut de la plupart des outils, de PowerShell à Docker. Le fichier vide sert souvent de test : son SHA-256 vaut e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.
SORTIE : 256 bits — 64 caractères hexadécimaux
FAMILLE : SHA-2 (2001) — norme FIPS 180-4
ÉTAT : Recommandé — aucune collision connue
Ne le confondez pas avec SHA3-256 : SHA-3, normalisé en 2015 (FIPS 202), repose sur une construction entièrement différente, appelée Keccak. Les deux produisent 64 caractères, mais jamais les mêmes pour un même fichier.
Où vous croisez SHA-256 au quotidien
- ›Sommes de contrôle de téléchargement. Les distributions Linux, les éditeurs de logiciels et les projets libres publient un fichier
SHA256SUMSou une valeur SHA-256 à côté de leurs archives et images ISO, souvent accompagnés d'une signature GPG. - ›Signature de code. Quand un éditeur signe un exécutable ou un paquet, c'est aujourd'hui en général l'empreinte SHA-256 du fichier qui est signée, pas le fichier lui-même. Au lancement, Windows recalcule cette empreinte avant d'afficher le nom de l'éditeur.
- ›Certificats TLS. Le cadenas de votre navigateur repose sur des certificats signés avec SHA-256 (« sha256WithRSAEncryption » ou ECDSA avec SHA-256 dans le détail du certificat). Le navigateur affiche aussi une empreinte SHA-256 du certificat lui-même.
- ›Bitcoin. Les en-têtes de bloc sont hachés deux fois de suite avec SHA-256 ; c'est ce calcul que les mineurs répètent sans fin pour la preuve de travail.
- ›Images Docker et OCI. Une image est désignée par un « digest » de la forme
sha256:….docker pull nginx@sha256:…garantit de récupérer exactement ce contenu, quel que soit le tag.
Vérifier une image ISO avec un fichier SHA256SUMS
- Téléchargez l'image et le fichier de sommes depuis le site officiel du projet, et si possible sa signature (
SHA256SUMS.gpgou.asc). - Ouvrez
SHA256SUMSdans un éditeur de texte : chaque ligne contient une empreinte, deux espaces (ou un espace et un astérisque) puis un nom de fichier. - Repérez la ligne qui porte exactement le nom de votre image : les fichiers de sommes listent souvent plusieurs variantes (bureau, serveur, architectures).
- Sélectionnez l'image dans le calculateur ci-dessus, laissez SHA-256 coché et collez la ligne entière dans le champ de vérification : seul le premier mot est pris en compte.
- Un message de correspondance confirme que le fichier est intact ; sinon, retéléchargez-le avant de l'utiliser.
La signature du fichier de sommes compte autant que la somme elle-même : si un pirate contrôle le serveur, il peut remplacer l'image et sa somme en même temps. Le guide de vérification des téléchargements détaille cette étape.
Le calculateur lit le fichier par morceaux, sans limite de taille : une image de plusieurs gigaoctets se vérifie sans la charger entièrement en mémoire et sans l'envoyer nulle part.
SHA-256 en ligne de commande
Windows
certutil -hashfile ubuntu.iso SHA256 Get-FileHash .\ubuntu.iso (Get-FileHash .\ubuntu.iso).Hash -eq "COLLEZ_ICI_LA_VALEUR_PUBLIEE"
Get-FileHash utilise SHA-256 par défaut. La troisième ligne répond True ou False ; l'opérateur -eq de PowerShell ignore la casse, ce qui tombe bien ici.
macOS
shasum -a 256 ubuntu.iso shasum -a 256 -c SHA256SUMS
Linux
sha256sum ubuntu.iso sha256sum -c SHA256SUMS --ignore-missing
L'option --ignore-missing évite une avalanche d'erreurs pour les variantes que vous n'avez pas téléchargées.
Docker
docker images --digests
Pièges propres à SHA-256
- ›64 caractères ne veut pas dire SHA-256. SHA3-256, SHA-512/256 et BLAKE2s produisent aussi 64 caractères. Si la valeur ne correspond jamais, vérifiez quel algorithme l'éditeur a vraiment utilisé.
- ›Préfixe à retirer. Dans
sha256:4f2a…, seuls les caractères après les deux-points forment l'empreinte. - ›Valeur en Base64. L'intégrité des scripts web (attribut
integrity="sha256-…") encode l'empreinte en Base64, sur 44 caractères terminés par « = ». C'est la même empreinte écrite autrement, pas une valeur hexadécimale. - ›Casse et espaces. Majuscules et minuscules sont équivalentes en hexadécimal ; les espaces ou sauts de ligne copiés depuis une page web, eux, faussent une comparaison faite à l'œil ou dans un tableur.
- ›Le digest Docker et le fichier .tar. Le digest d'une image porte sur son manifeste. Hacher l'archive produite par
docker savedonne forcément une autre valeur.
SHA-512, le grand frère 64 bits
SHA-512 fait partie de la famille SHA-2 depuis son origine, au même titre que SHA-256, et il est défini dans la même norme, FIPS 180-4. La différence tient à la taille des briques : SHA-512 manipule des mots de 64 bits, lit le fichier par blocs de 1 024 bits et applique 80 tours par bloc, là où SHA-256 utilise des mots de 32 bits, des blocs de 512 bits et 64 tours.
Le résultat fait 512 bits, soit 128 caractères hexadécimaux : deux fois plus long qu'un SHA-256, quatre fois plus qu'un MD5. Pour un fichier vide, il commence par cf83e1357eefb8bd et se termine par a538327af927da3e.
SORTIE : 512 bits — 128 caractères hexadécimaux
MOTS : 64 bits — blocs de 1 024 bits, 80 tours
ÉTAT : Recommandé — aucune attaque pratique connue
SHA-512 : plus long, mais souvent plus rapide
C'est la surprise de SHA-512 : sur un processeur 64 bits, il traite fréquemment les gros fichiers plus vite que SHA-256. L'explication est arithmétique. Une addition ou une rotation sur 64 bits coûte à peu près autant qu'une opération sur 32 bits pour un tel processeur, et SHA-512 consomme 128 octets du fichier par bloc contre 64 pour SHA-256, avec seulement 80 tours au lieu de 64. Rapporté à l'octet, il fait donc moins de travail.
Deux nuances. Sur un processeur 32 bits ou un petit microcontrôleur, l'avantage s'inverse. Et de nombreux processeurs récents disposent d'instructions matérielles dédiées à SHA-256, ce qui peut redonner l'avantage à SHA-256 dans les logiciels qui les exploitent. Dans un navigateur, WebAssembly ne donne pas accès à ces instructions : le calcul se fait en logiciel, sur des entiers 64 bits, ce qui favorise plutôt SHA-512.
Le plus simple reste de mesurer sur votre propre machine : openssl speed sha256 sha512 affiche les débits des deux algorithmes, ou chronométrez le calculateur en haut de page sur un même gros fichier avec chacun des deux algorithmes. Votre fichier reste sur votre poste pendant ces essais.
SHA-384 et SHA-512/256 : les variantes tronquées
SHA-384 effectue exactement le même calcul que SHA-512, avec des valeurs initiales différentes, puis ne garde que 384 bits (96 caractères). On le rencontre dans TLS, par exemple dans la suite TLS_AES_256_GCM_SHA384 de TLS 1.3, et dans les exigences de la NSA pour les systèmes classifiés (suite CNSA). Le calculateur le propose directement.
SHA-512/256, ajouté en 2012 dans FIPS 180-4, applique la même recette pour obtenir 256 bits, donc 64 caractères. Il combine la vitesse de SHA-512 sur 64 bits et la taille de SHA-256. Comme SHA-384, et contrairement à SHA-256 et SHA-512, il résiste aux attaques par extension de longueur, ce qui intéresse les concepteurs de protocoles.
Erreur fréquente : couper un SHA-512 à 64 caractères ne donne pas un SHA-512/256. Les valeurs initiales diffèrent, le résultat aussi. Pour le calculer, utilisez shasum -a 512256 fichier ou openssl dgst -sha512-256 fichier.
Ni SHA-256 ni SHA-512 pour les mots de passe
Ni SHA-256 ni SHA-512 seuls ne conviennent pour stocker des mots de passe, malgré leur longueur. Une fonction de hachage de fichiers est conçue pour être rapide ; or un attaquant qui a volé une base d'empreintes profite de cette vitesse pour tester des milliards de mots de passe candidats. Un hachage de mots de passe doit au contraire être lent, salé et coûteux en mémoire.
Les recommandations actuelles, comme celles de l'OWASP, placent Argon2id en premier, puis scrypt, bcrypt et PBKDF2. Les empreintes $6$ du fichier /etc/shadow sous Linux utilisent SHA-crypt, un schéma qui applique SHA-512 des milliers de fois avec un sel : c'est déjà autre chose qu'un SHA-512 brut. Ce calculateur, lui, sert à vérifier des fichiers, pas à protéger des secrets.
Où l'on trouve SHA-512
- ›dans les fichiers
.sha512publiés à côté des archives de nombreux projets de la fondation Apache, ou dans le fichierCHECKSUM.SHA512des images FreeBSD ; - ›dans les signatures Ed25519 (RFC 8032), utilisées par OpenSSH ou par des outils de signature comme minisign et signify d'OpenBSD, qui emploient SHA-512 en interne ;
- ›dans le champ
integritydes fichierspackage-lock.jsonde npm, sous la formesha512-…encodée en Base64 ; - ›dans les procédures d'archivage où l'on préfère une marge de sécurité maximale, pour des fichiers conservés pendant des décennies.
SHA-512 en ligne de commande
Windows
certutil -hashfile sauvegarde.7z SHA512 Get-FileHash -Algorithm SHA512 .\sauvegarde.7z | Format-List
Format-List évite que PowerShell tronque la valeur de 128 caractères avec des points de suspension dans un tableau trop étroit.
macOS
shasum -a 512 sauvegarde.7z
Linux
sha512sum sauvegarde.7z sha512sum -c sauvegarde.7z.sha512
Le format des fichiers .sha512 varie d'un projet à l'autre : certains ne contiennent que l'empreinte, sans nom de fichier. Si -c refuse le fichier, comparez simplement la valeur avec le calculateur.
Comparer 128 caractères sans erreur
- ›Ne comparez pas à l'œil. Vérifier le début et la fin d'une si longue chaîne est tentant mais insuffisant ; collez la valeur attendue dans le champ de vérification et laissez la machine comparer.
- ›Coupures de ligne. Une valeur de 128 caractères est souvent coupée en deux lignes sur une page web ou dans un PDF, parfois avec un tiret de césure. Recollez les morceaux et supprimez espaces et tirets.
- ›Majuscules et minuscules. Elles n'ont aucune importance en hexadécimal ; le calculateur les traite comme identiques.
- ›Base64 sur 88 caractères. Une valeur qui se termine par « == » et contient des lettres au-delà de f est un SHA-512 encodé en Base64, comme chez npm, pas un hexadécimal.
- ›96 caractères. Si la valeur publiée a cette longueur, il s'agit d'un SHA-384 : sélectionnez-le dans le calculateur.
Pour aller plus loin
- ›MD5 ou SHA-256 — pourquoi SHA-256 a remplacé MD5 pour la sécurité
- ›Vérifier un téléchargement — la marche à suivre avec une somme publiée
- ›Choisir un algorithme — quand SHA-256 suffit et quand regarder ailleurs
- ›Qu'est-ce que le hachage ? — les propriétés qu'on attend d'une fonction de hachage
Questions fréquentes sur SHA-256 et SHA-512
Deux fichiers différents peuvent-ils avoir le même SHA-256 ?
En théorie oui, puisqu'il existe plus de fichiers possibles que d'empreintes. En pratique, personne n'en a jamais trouvé, et aucune méthode connue ne permet d'en fabriquer. Deux SHA-256 identiques signifient donc que les fichiers sont identiques.
Pourquoi le digest de mon image Docker ne correspond-il pas au SHA-256 du fichier .tar ?
Parce que le digest est calculé sur le manifeste de l'image, un petit document JSON qui référence les couches, et non sur une archive exportée. Pour comparer deux images, comparez leurs digests avec docker images --digests.
Le calcul d'un fichier de plusieurs gigaoctets est-il possible dans le navigateur ?
Oui. Le fichier est lu par tranches de 4 Mo et haché au fil de l'eau, donc sans limite de taille. La durée dépend surtout de la vitesse du disque ou de la clé USB qui contient le fichier.
SHA-256 et SHA3-256 sont-ils interchangeables ?
Non. Ce sont deux algorithmes distincts qui donnent des valeurs de même longueur mais toujours différentes. Une somme publiée en SHA3-256 ne peut être vérifiée qu'avec SHA3-256.
SHA-512 est-il plus sûr que SHA-256 ?
Sa marge théorique est plus grande, mais aucun des deux n'a de faiblesse pratique connue. Pour vérifier un fichier, ils offrent la même garantie ; choisissez celui que publie l'éditeur, ou SHA-512 si la vitesse sur de gros volumes vous importe.
Peut-on tronquer un SHA-512 pour obtenir un SHA-256 ?
Non. Les 64 premiers caractères d'un SHA-512 ne correspondent ni au SHA-256 ni au SHA-512/256 du même fichier, car ces algorithmes partent de valeurs initiales différentes. Il faut recalculer avec l'algorithme voulu.