SHA-256 et fonctions de hachage : guide pratique pour les développeurs

SHA-256 est un algorithme de hachage cryptographique. Découvrez son fonctionnement, les différences avec MD5, ses propriétés et ses principaux cas d'usage.

Qu'est-ce qu'une fonction de hachage cryptographique

Une fonction de hachage cryptographique prend une entrée de taille arbitraire et produit une sortie de taille fixe (le hash). SHA-256 produit un hash de 256 bits (64 caractères hexadécimaux). La fonction est déterministe, à sens unique et sensible à l'effet avalanche.

Propriétés fondamentales

  • Déterminisme : même entrée → même hash
  • À sens unique : retrouver l'entrée depuis le hash est infaisable
  • Effet avalanche : 1 bit d'entrée changé modifie ~50% des bits de sortie
  • Résistance aux collisions : extrêmement difficile de trouver deux entrées avec le même hash

SHA-256 vs MD5

MD5 (128 bits) est vulnérable aux collisions depuis 2004. SHA-1 (160 bits) a été compromis en 2017. SHA-256 reste sécurisé et fait partie de la famille SHA-2 standardisée par le NIST.

Principaux cas d'usage

  • Intégrité de fichiers (checksum)
  • Signatures numériques (DSA, RSA, ECDSA)
  • Certificats SSL/TLS
  • Blockchain (Bitcoin utilise SHA-256)
  • HMAC pour l'authentification des requêtes

Hachage de mots de passe : n'utilisez pas SHA-256 directement

SHA-256 est trop rapide pour hacher les mots de passe. Utilisez toujours des algorithmes lents avec salt : bcrypt (work factor ≥ 12), Argon2id ou scrypt.