SHA-256 vs SHA-512 : quelle fonction de hachage choisir ?
SHA-256 et SHA-512 appartiennent toutes deux à la famille SHA-2, conçue par la NSA et standardisée par le NIST. Elles produisent une empreinte de taille fixe à partir de n'importe quelle donnée et sont aujourd'hui considérées comme sûres. La différence tient à la taille de l'empreinte, à la performance selon l'architecture et à quelques détails de sécurité. Voici lequel choisir et pourquoi.
La famille SHA-2
SHA-2 regroupe plusieurs variantes (SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256) qui partagent la même structure mais diffèrent par la taille des mots et de l'empreinte. Le chiffre indique la taille de l'empreinte en bits : SHA-256 produit 256 bits (64 caractères hexadécimaux), SHA-512 en produit 512 (128 caractères).
Vous pouvez calculer ces empreintes avec notre générateur de hash, ou reconnaître un algorithme à partir d'une empreinte avec l'identificateur de hash. À ne pas confondre avec MD5, obsolète pour la sécurité (voir notre comparatif MD5 vs SHA-256).
SHA-256
SHA-256 travaille sur des mots de 32 bits et produit une empreinte de 256 bits. C'est la fonction de hachage la plus répandue au monde : certificats TLS, signatures de Bitcoin, vérification d'intégrité de fichiers, git. Son empreinte plus courte la rend pratique à stocker, afficher et transmettre.
- Empreinte : 256 bits, 64 caractères hexadécimaux
- Mots : 32 bits, optimal sur les plateformes 32 bits et l'embarqué
- Adoption : la plus large, support universel
SHA-512
SHA-512 travaille sur des mots de 64 bits et produit une empreinte de 512 bits. Contre-intuitivement, sur un processeur 64 bits moderne, elle est souvent plus rapide que SHA-256 pour les gros volumes, car elle traite plus de données par tour. Son empreinte plus longue offre aussi une marge de sécurité supérieure.
- Empreinte : 512 bits, 128 caractères hexadécimaux
- Mots : 64 bits, optimal sur les architectures 64 bits
- Résistance native : SHA-512 n'est pas vulnérable à l'attaque par extension de longueur lorsqu'on utilise ses variantes tronquées (SHA-512/256)
Tableau comparatif
| Critère | SHA-256 | SHA-512 |
|---|---|---|
| Taille d'empreinte | 256 bits (64 hex) | 512 bits (128 hex) |
| Taille des mots | 32 bits | 64 bits |
| Vitesse sur CPU 64 bits | Bonne | Souvent supérieure |
| Vitesse sur 32 bits / embarqué | Supérieure | Plus lente |
| Marge de sécurité | Très élevée | Encore supérieure |
| Extension de longueur | Vulnérable | Vulnérable (sauf variantes tronquées) |
| Adoption | Universelle | Large |
Performance
La performance dépend de l'architecture. Sur un serveur ou un ordinateur portable 64 bits, SHA-512 peut dépasser SHA-256 de 20 à 50 % sur de gros fichiers, parce qu'elle traite des blocs plus grands par itération. Sur un microcontrôleur 32 bits ou un environnement contraint, SHA-256 reprend l'avantage.
Dans la pratique, pour de petites entrées (un mot de passe, un identifiant), la différence est négligeable. Elle ne devient mesurable que sur des volumes importants ou des débits élevés.
Quand choisir l'un ou l'autre
Choisir SHA-256 quand
- Vous visez la compatibilité maximale et un format compact
- Vous ciblez de l'embarqué, de l'IoT ou des plateformes 32 bits
- Vous vérifiez l'intégrité de fichiers ou signez des certificats
- Une empreinte courte facilite l'affichage et le stockage
Choisir SHA-512 quand
- Vous hachez de gros volumes sur des serveurs 64 bits
- Vous voulez la marge de sécurité la plus large possible
- Vous utilisez SHA-512/256 pour résister à l'extension de longueur tout en gardant 256 bits
Important : aucune des deux n'est adaptée au hachage de mots de passe. Pour cela, utilisez bcrypt ou Argon2, conçus pour être lents et salés.
Recommandation
Pour un usage général, SHA-256 est le choix par défaut : universellement supporté, compact, amplement sûr. Optez pour SHA-512 si vous hachez de gros volumes sur du matériel 64 bits ou si vous voulez une marge de sécurité supplémentaire. Et pour stocker des mots de passe, tournez-vous vers une fonction dédiée comme Argon2id, jamais vers SHA-2 seul.
Questions fréquentes
SHA-512 est-il plus sûr que SHA-256 ?
SHA-512 offre une marge de sécurité théorique supérieure grâce à son empreinte plus longue, mais SHA-256 est déjà largement hors de portée des attaques actuelles. Pour la quasi-totalité des usages, les deux sont considérées comme sûres.
Pourquoi SHA-512 peut-il être plus rapide que SHA-256 ?
Parce qu'il manipule des mots de 64 bits et traite des blocs plus grands par tour. Sur un processeur 64 bits natif, cela compense le surcoût et le rend souvent plus rapide sur de gros volumes. Sur du 32 bits, c'est l'inverse.
Puis-je hacher des mots de passe avec SHA-256 ou SHA-512 ?
Non, ce serait une erreur. Ces fonctions sont rapides, donc faciles à attaquer par force brute. Utilisez bcrypt ou Argon2id, qui sont volontairement lents et intègrent un sel.
Qu'est-ce que SHA-512/256 ?
C'est SHA-512 dont l'empreinte est tronquée à 256 bits, avec des valeurs d'initialisation différentes. On obtient une empreinte de 256 bits, la vitesse de SHA-512 sur 64 bits et une résistance native à l'attaque par extension de longueur.