Skip to content

Générateur SHA-1 (160 bits, usage hérité)

Générez des hashes SHA-1 dans votre navigateur — sortie hex de 40 caractères, sans envoi. Outil hérité pour les empreintes Git, contrôles de certificats anciens et audits de migration. Données jamais transmises.

Sans pistage Fonctionne dans le navigateur Gratuit
⚠️ SHA-1 est un algorithme obsolète. Utilisez SHA-256 pour les nouveaux travaux. Tout le hachage s'exécute localement — aucune donnée n'est envoyée.
Algorithme
Vérifié pour l'exactitude SHA-1 selon les vecteurs de test NIST FIPS 180-1 ; cadrage de dépréciation vérifié selon NIST SP 800-131A — Équipe d'ingénierie Go Tools · 28 mai 2026

Qu'est-ce que SHA-1 ?

SHA-1 (Secure Hash Algorithm 1) est une fonction de hachage cryptographique de 160 bits publiée par le NIST en 1995 sous la norme FIPS 180-1. Elle a été conçue par la NSA américaine pour remplacer SHA-0 (une version antérieure défectueuse rapidement retirée en 1993) et était l'algorithme de hachage dominant pour les signatures numériques, les certificats TLS et la signature de code tout au long des années 2000.

Historique des failles : En 2005, l'équipe de Xiaoyun Wang a publié une attaque théorique réduisant la résistance aux collisions de SHA-1 de 2^80 à 2^63 opérations — une rupture théorique, mais pas encore pratique. En février 2017, Google et CWI Amsterdam ont publié l'attaque SHAttered, produisant deux documents PDF distincts avec des hashes SHA-1 identiques en utilisant environ 110 années-GPU de calcul. C'était la rupture pratique définitive. Le NIST avait déjà déprécié SHA-1 pour les signatures en 2011 (NIST SP 800-131A) ; les éditeurs de navigateurs et les autorités de certification ont suivi en retirant le support des certificats SHA-1 en 2016–2017.

Statut actuel : SHA-1 est déprécié pour tous les usages sensibles à la sécurité — signatures numériques, empreintes de certificats, stockage de mots de passe et signature de code. Il persiste dans le format d'ID d'objets de Git (hashes de commits), où il est utilisé pour l'adressage par contenu plutôt que pour la sécurité, et dans les sommes de contrôle de logiciels legacy où les administrateurs n'ont pas encore migré. Le projet Git a ajouté le support du format d'objets SHA-256 dans la version 2.29 (octobre 2020). Tous les nouveaux projets devraient utiliser SHA-256 ou plus fort.

Cet outil calcule SHA-1 entièrement dans votre navigateur via crypto.subtle.digest('SHA-1', ...) de la Web Crypto API. La sortie hexadécimale de 40 caractères est identique à ce que produisent sha1sum, openssl dgst -sha1 ou git hash-object. Aucun octet n'est envoyé à un serveur.

SHA-1 vs la famille SHA-2 : SHA-1 produit 40 hex (160 bits). SHA-256 produit 64 hex (256 bits) et n'a aucune faiblesse connue. MD5 produit 32 hex (128 bits) et a été rompu plus tôt (2004). Pour tout nouveau travail de hachage, SHA-256 est le choix standard.

// Hash text using Web Crypto API (SHA-1 — legacy use only)
async function sha1(text) {
  const data = new TextEncoder().encode(text);
  const hash = await crypto.subtle.digest('SHA-1', data);
  return Array.from(new Uint8Array(hash))
    .map(b => b.toString(16).padStart(2, '0'))
    .join('');
}

await sha1('Hello, World!');
// → '0a0a9f2a6772942557ab5355d76af442f8f65e01'
// ⚠️ SHA-1 is broken — use SHA-256 for new work.

Exemples SHA-1

Recherche d'une empreinte de commit Git

tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904
author A Dev <dev@example.com> 1716854400 +0000
committer A Dev <dev@example.com> 1716854400 +0000

Initial commit

Git stocke chaque commit comme un blob dont le SHA-1 est calculé à partir de l'en-tête de commit et de son contenu exactement dans ce format. La chaîne hexadécimale de 40 caractères qu'affiche `git log` est une empreinte SHA-1 directe. Collez le texte brut de l'objet commit ici pour reproduire le même hash — utile lors du débogage de la sortie `git cat-file` ou pour vérifier qu'un dépôt miroir n'a pas altéré l'historique. Note : Git 2.29+ prend en charge le mode SHA-256 (git init --object-format=sha256), et le dépôt d'objets de GitHub migrera éventuellement. Pour les nouveaux dépôts, préférez le mode SHA-256.

Vérification d'une empreinte de certificat TLS hérité

-----BEGIN CERTIFICATE-----
MIIDXTCCAkWgAwIBAgIJAKlL...
-----END CERTIFICATE-----

Avant 2017, les navigateurs affichaient les empreintes de certificats sous forme de chaînes hexadécimales SHA-1 de 40 caractères. Les autorités de certification ont cessé d'émettre des certificats signés SHA-1 en janvier 2016, et tous les principaux navigateurs ont retiré le support début 2017. Si vous auditez un ancien certificat interne ou validez un appareil IoT hérité, collez le corps PEM ici pour reproduire l'empreinte SHA-1 à des fins de comparaison. Les flux de travail modernes utilisent l'empreinte SHA-256 en 64 caractères.

Vérification d'un ancien téléchargement logiciel

node-v0.12.7-linux-x64.tar.gz

Certaines archives logicielles anciennes ne publient encore qu'une somme de contrôle SHA-1. Bien que cela offre une détection de corruption basique (pas de protection contre la falsification), c'est toujours mieux qu'aucune somme de contrôle. Utilisez l'onglet Fichier pour déposer l'archive, calculer le SHA-1, puis le comparer à la valeur publiée par l'éditeur. Si SHA-256 est également disponible, préférez-le toujours. Pour les nouvelles archives, exigez des sommes de contrôle SHA-256 ou SHA-512.

Démonstration de la collision SHAttered

(Collez le contenu du fichier shattered-1.pdf de Google/CWI via l'onglet Fichier)

En février 2017, Google et CWI Amsterdam ont publié l'attaque SHAttered — la première collision SHA-1 pratique. Ils ont produit deux fichiers PDF différents (shattered-1.pdf et shattered-2.pdf) qui hachent vers la même valeur SHA-1 : 38762cf7f55934b34d179ae6a4c80cadccbb7f0a. Déposer l'un ou l'autre PDF dans l'onglet Fichier de cet outil produit exactement ce hash, prouvant que la collision est réelle. Cette démonstration est la preuve la plus claire que SHA-1 est rompu : deux documents différents avec la même empreinte signifie que l'empreinte n'est plus une identité fiable. Utilisez SHA-256 pour tous les nouveaux flux d'intégrité de documents.

Comment générer des hashes SHA-1

  1. 1

    Collez du texte ou déposez un fichier

    Sélectionnez l'onglet Texte et collez n'importe quelle chaîne — un message de commit, un corps de certificat ou une entrée de checksum hérité — dans la zone de saisie. Le hash SHA-1 se met à jour au fil de la frappe. Pour les fichiers, passez à l'onglet Fichier et faites glisser n'importe quel fichier dans la zone de dépôt ; le navigateur le hache localement sans envoi.

  2. 2

    Copiez le hash de 40 caractères

    Cliquez sur le bouton Copier à côté de la sortie du hash. La chaîne hexadécimale complète en minuscules de 40 caractères va dans votre presse-papiers. Utilisez le bouton Majuscules si votre système hérité attend de l'hexadécimal en majuscules — certains outils anciens et APIs Windows utilisent les majuscules par défaut.

  3. 3

    Comparez avec une empreinte héritée

    Passez à l'onglet Comparer et collez deux hashes SHA-1 côte à côte pour confirmer qu'ils correspondent. Utile pour valider la somme de contrôle d'un éditeur hérité, auditer un dépôt Git miroir ou vérifier une ancienne empreinte de certificat TLS issue d'un document antérieur à l'adoption de SHA-256.

Détails techniques

Algorithme : construction Merkle-Damgård, 80 tours
SHA-1 traite l'entrée en blocs de 512 bits (64 octets), appliquant 80 tours d'opérations binaires regroupés en quatre étapes de 20 tours, chacune avec une fonction logique différente (Ch, Parité, Maj, Parité) et une constante additive dérivée des racines carrées de petits entiers. L'état de hachage initial est cinq mots de 32 bits (A–E), et le hash final est la concaténation de ces mots après le dernier bloc. Implémentation définie dans FIPS 180-1 (1995), remplacée par FIPS 180-4 (2015) qui inclut formellement la dépréciation.
Sortie : 160 bits, 40 caractères hexadécimaux
Toujours exactement 40 caractères hexadécimaux en minuscules (160 bits = 20 octets, encodés en 2 hex par octet). La longueur de sortie est fixe quelle que soit la taille de l'entrée. Comparé aux 64 caractères de SHA-256, la sortie plus courte offre moins de bits de résistance aux collisions — un facteur clé de pourquoi SHA-1 a été rompu avant SHA-256.
Performance : rapide, mais c'est en partie le problème
SHA-1 est rapide — typiquement 400–700 Mo/s dans un navigateur via Web Crypto, compétitif avec SHA-256. Pour un attaquant, cette vitesse est un avantage : un cluster GPU moderne peut calculer des milliards de hashes SHA-1 par seconde, accélérant la recherche par force brute et les recherches de collisions. La vitesse est la raison pour laquelle SHA-1 (comme MD5) ne doit jamais être utilisé pour le stockage de mots de passe — utilisez bcrypt, scrypt ou Argon2 à la place.
Normes : FIPS 180-1 (1995) — déprécié dans le contexte FIPS 180-4
SHA-1 a été standardisé dans FIPS 180-1 (1995), remplaçant le SHA-0 défectueux. Le NIST a déprécié SHA-1 pour les signatures numériques dans NIST SP 800-131A (2011) et dans FIPS 186-5 (2023) l'a formellement interdit pour toute génération de signature numérique. RFC 6194 (2011) a documenté les considérations de sécurité connues. L'API WebCrypto du W3C inclut encore SHA-1 pour des raisons d'interopérabilité legacy, ce qui est la raison pour laquelle cet outil navigateur peut le calculer.

Bonnes pratiques

N'utilisez jamais SHA-1 pour des opérations sensibles à la sécurité
SHA-1 est déprécié pour les signatures numériques, les certificats TLS, la signature de code, le stockage de mots de passe et tout flux où la résistance aux collisions est importante. L'attaque SHAttered de 2017 a démontré des collisions pratiques. Pour tous les usages sécuritaires, migrez vers SHA-256 ou SHA-3. La différence de coût est négligeable sur le matériel moderne — SHA-256 est accéléré matériellement dans tous les CPU et GPU actuels.
SHA-1 pour la recherche d'empreintes héritées est acceptable
Si vous devez vérifier une somme de contrôle de fichier antérieure à 2017, rechercher un ID de commit Git ou inspecter une ancienne empreinte de certificat à des fins d'audit, SHA-1 est approprié. Le hash lui-même n'est pas utilisé pour prendre une décision de confiance — vous reproduisez simplement une empreinte connue pour référence croisée. Documentez ceci explicitement dans vos journaux d'audit : « SHA-1 utilisé pour référence héritée uniquement, pas pour validation sécuritaire. »
Hachez toujours des octets UTF-8, pas des points de code Unicode
SHA-1, comme tous les algorithmes de hachage, opère sur des octets, pas sur des caractères. La même chaîne encodée en UTF-8 vs UTF-16 produit des hashes différents. Cet outil encode toujours l'entrée en UTF-8 sans BOM avant le hachage. Si vous devez correspondre à un système utilisant un encodage différent (Windows UTF-16-LE, Latin-1), vous devez pré-encoder l'entrée en externe avant de comparer les hashes.
Utilisez une comparaison en temps constant lors de la vérification de hashes dans le code
Si vous comparez deux hashes SHA-1 dans du code, utilisez une vérification d'égalité en temps constant — Node.js crypto.timingSafeEqual(), Python hmac.compare_digest() — plutôt que l'égalité de chaînes naïve (=== ou ==). La comparaison naïve divulgue des informations de timing qui peuvent théoriquement permettre à un attaquant de reconstruire le hash attendu octet par octet. C'est une mesure de défense en profondeur même pour la vérification SHA-1 legacy.

Questions fréquentes SHA-1

SHA-1 est-il encore sûr à utiliser ?
Non. SHA-1 a été théoriquement affaibli en 2005, et en février 2017 Google et CWI Amsterdam ont démontré la première collision pratique via l'attaque SHAttered — deux fichiers PDF différents avec des hashes SHA-1 identiques. Le NIST a déprécié SHA-1 pour les signatures numériques en 2011 (NIST SP 800-131A) et tous les principaux navigateurs et autorités de certification ont cessé d'accepter les certificats SHA-1 d'ici 2017. SHA-1 est rompu pour tout usage sensible à la sécurité : signatures, certificats, stockage de mots de passe. Pour tout nouveau travail, passez à SHA-256.
Pourquoi Git utilise-t-il encore SHA-1 ?
Git utilise SHA-1 pour les IDs d'objets (hashes de commits, d'arborescences, de blobs) car il a été conçu en 2005 quand SHA-1 était encore largement fiable. L'usage par Git n'est pas une signature cryptographique — c'est un schéma d'adressage par contenu utilisé pour détecter la corruption accidentelle, pas la falsification délibérée. Le projet Git migre depuis Git 2.29 (2020), qui a ajouté le support de --object-format=sha256. GitHub et les grandes forges déploient progressivement le mode SHA-256. Les dépôts existants peuvent être convertis, mais la migration est complexe en raison des milliards d'IDs de commits existants. Pour l'instant, les IDs de commits SHA-1 restent la façon dont la plupart de l'historique Git est stocké, rendant cet outil utile pour la vérification croisée des hashes d'objets commit.
Dois-je migrer de SHA-1 vers SHA-256 ?
Oui, pour tout système sensible à la sécurité. Liste de contrôle de migration concrète : (1) Certificats TLS — si vous avez encore des certificats signés SHA-1, remplacez-les immédiatement ; les autorités de certification n'en émettent plus. (2) Signatures API et HMACs — remplacez par HMAC-SHA-256. (3) Hashes de mots de passe stockés en SHA-1 — migrez vers bcrypt ou Argon2. (4) Sommes de contrôle de documents ou paquets — republiez avec SHA-256. (5) Dépôts Git — optez pour le mode SHA-256 pour les nouveaux dépôts si votre chaîne d'outils le supporte. Les sommes de contrôle héritées sur des téléchargements archivés peuvent rester telles quelles car elles ne servent qu'à détecter la corruption accidentelle.
Qu'était l'attaque SHAttered ?
SHAttered (shattered.io, février 2017) était une collision SHA-1 pratique produite par Google Security et CWI Amsterdam. L'attaque a coûté environ 110 années-GPU (~110 000 USD aux prix cloud de 2017) et a produit deux fichiers PDF distincts produisant le même hash SHA-1 : 38762cf7f55934b34d179ae6a4c80cadccbb7f0a. Cela a brisé l'hypothèse que les collisions SHA-1 n'étaient que théoriques. L'attaque fonctionne en exploitant un chemin différentiel dans la fonction de compression de SHA-1. D'ici 2020, le coût d'une collision SHA-1 à préfixe choisi était tombé à ~45 000 USD. Comparez avec SHA-256, pour lequel aucune collision d'aucune sorte n'a jamais été trouvée.
Les collisions SHA-1 peuvent-elles survenir accidentellement ?
Tomber accidentellement sur une collision SHA-1 sans effort délibéré reste astronomiquement improbable — il existe 2^160 valeurs SHA-1 possibles, donc la probabilité de collision aléatoire est d'environ 1 sur 10^24 pour deux entrées données. Le danger est adversarial : un attaquant déterminé peut désormais fabriquer une collision pour environ 45 000 USD. La corruption accidentelle de l'historique Git n'est pas une menace réaliste liée à la faiblesse SHA-1. Le vrai risque concerne les documents signés numériquement, les certificats et les flux de signature de code où un attaquant pourrait substituer un document malveillant ayant le même hash qu'un document de confiance.
SHA-1 est-il acceptable pour des usages non sécuritaires comme les sommes de contrôle ?
Pour détecter la corruption accidentelle de données — un téléchargement corrompu, un bit inversé sur disque — SHA-1 est techniquement encore adéquat, car les collisions accidentelles restent essentiellement impossibles. Cependant, il y a peu de raisons d'utiliser SHA-1 même pour des sommes de contrôle non sécuritaires aujourd'hui, car SHA-256 n'est que marginalement plus lent (accéléré matériellement dans tous les CPU modernes), universellement supporté et pérenne. La seule raison légitime d'utiliser SHA-1 maintenant est l'interopérabilité avec un système hérité qui n'accepte que des empreintes hexadécimales de 40 caractères.
Quelle est la longueur d'un hash SHA-1 ?
Un hash SHA-1 fait toujours exactement 160 bits, représenté en 40 caractères hexadécimaux (2 hex par octet × 20 octets). La longueur de sortie est fixe quelle que soit la taille de l'entrée — hacher un seul caractère ou un fichier de 10 Go produit exactement 40 caractères hex. Comparaison : MD5 produit 32 hex (128 bits), SHA-256 produit 64 hex (256 bits) et SHA-512 produit 128 hex (512 bits). La sortie plus courte par rapport à SHA-256 est l'une des raisons pour lesquelles la résistance aux collisions de SHA-1 est plus faible.
Mon entrée est-elle envoyée à un serveur ?
Non. SHA-1 est calculé entièrement dans votre navigateur via la Web Crypto API (crypto.subtle.digest('SHA-1', data)). Ouvrez DevTools → onglet Réseau pendant le hachage — vous verrez zéro requête sortante. Les fichiers que vous déposez sont lus via l'API FileReader et hachés localement ; les octets ne quittent jamais votre machine. Cela rend l'outil sûr pour hacher des documents confidentiels, des certificats legacy ou des empreintes de code source propriétaire. La même garantie de confidentialité s'applique au générateur SHA-256.
Pourquoi ma sortie SHA-1 diffère-t-elle de sha1sum en ligne de commande ?
Presque toujours un saut de ligne final. La commande shell echo 'hello' | sha1sum inclut un saut de ligne (\n) après 'hello', donc elle hache 'hello\n' et non 'hello'. Utilisez echo -n 'hello' | sha1sum ou printf '%s' 'hello' | sha1sum pour le supprimer. Autres causes fréquentes : fins de ligne Windows (\r\n vs \n), BOM UTF-8 au début du fichier, ou différences d'encodage (UTF-8 vs Latin-1). Cet outil encode l'entrée en UTF-8 sans BOM avant le hachage.

Décodeur JWT

Outils de sécurité

Décodez des jetons JWT en ligne avec notre décodeur JWT gratuit. Inspectez en-tête, charge utile, signature, expiration et revendications. 100 % navigateur — votre jeton ne quitte jamais votre appareil. Sans inscription ni suivi.

Générateur de Hash MD5 en Ligne et Vérificateur de Checksum

Outils de sécurité

Générez des hashes MD5, SHA-256, SHA-1 et SHA-512 dans votre navigateur. Hachez texte ou fichiers, vérifiez les checksums en un clic. 100 % privé.

Générateur de Mot de Passe — Sécurisé & Personnalisable

Outils de sécurité

Générez des mots de passe forts et sécurisés — gratuit, 100 % dans votre navigateur. Personnalisez longueur et caractères, générez jusqu'à 50.

Générateur de Hash SHA-256 & Outil Checksum

Outils de sécurité

Générez des hashes SHA-256 en ligne gratuitement. Hachez texte ou fichiers dans votre navigateur, vérifiez les checksums, copiez la sortie hex de 64 caractères. Sans inscription ; données jamais transmises.

Générateur SHA-3 (Keccak SHA3-256 NIST)

Outils de sécurité

Générez des hashes SHA-3 en ligne gratuitement. Construction sponge NIST FIPS 202 — la norme post-SHA-2. Sortie SHA3-256 en 64 hex. Navigateur uniquement via js-sha3 en chargement différé ; zéro envoi.

Générateur SHA-384 (Hash Suite B TLS)

Outils de sécurité

Générez des hashes SHA-384 en ligne — sortie hex de 96 caractères, immunisé contre l'extension de longueur, conforme NSA Suite B. Associé à AES-256-GCM dans TLS. Tout le hachage s'exécute dans votre navigateur.