Qu’est-ce qu’un hash
Un hash cryptographique transforme n’importe quel texte en empreinte de longueur fixe. Le même texte donne toujours le même hash, et un seul caractère modifié le change entièrement. SHA-256 donne 64 caractères hexadécimaux, SHA-1 40, SHA-384 96 et SHA-512 128. On ne peut pas retrouver le texte à partir du hash, seulement vérifier si un autre texte donne le même.
Chaque octet compte
Le texte est encodé en UTF-8 avant le calcul, comme le font la plupart des programmes. Un espace ou un retour à la ligne final donne un autre hash : « echo hello | sha256sum » hache « hello » suivi d’un saut de ligne, « printf hello | sha256sum » seulement « hello ». L’option « Chaque ligne séparément » sert à hacher une liste, par exemple des adresses e-mail pour une audience publicitaire.
Quel algorithme choisir
SHA-256 pour les sommes de contrôle, les signatures d’API et tout nouveau projet. SHA-1 n’est plus sûr contre les collisions et n’est là que pour les anciens systèmes, comme les identifiants d’objets Git. Ne stockez jamais un mot de passe en simple SHA : utilisez bcrypt, scrypt ou Argon2 avec un sel. MD5 n’est pas proposé : les navigateurs ne le fournissent pas et il ne doit plus servir à la sécurité.
Exemple
Les empreintes SHA-1 et SHA-256 du mot « hello » (hexadécimal) : des valeurs de test standard, comparables avec n’importe quel autre outil.
Entrée
hello
Résultat
SHA-1: aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d SHA-256: 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
