Générateur de Hash SHA-1

Générer un hash SHA-1 à partir de n'importe quel texte

Texte d'entrée

Fonctionne localement · Sûr pour coller des secrets

Hash SHA-1

Le hash SHA-1 s'affichera ici…

Qu'est-ce que le hachage SHA-1 ?

SHA-1 (Secure Hash Algorithm 1) est une fonction de hachage cryptographique qui produit un condensat fixe de 160 bits (20 octets) à partir de n'importe quelle entrée. Publiée par la NSA et normalisée par le NIST en 1995 sous FIPS PUB 180-1, puis documentée dans la RFC 3174, SHA-1 a été conçue comme un successeur plus robuste de SHA-0 et MD5. L'algorithme traite l'entrée en blocs de 512 bits à travers 80 tours d'opérations bit à bit, produisant une empreinte hexadécimale de 40 caractères qui a constitué l'épine dorsale de SSL/TLS, PGP, SSH et IPsec pendant plus d'une décennie.

Comme toutes les fonctions de hachage cryptographiques, SHA-1 est une transformation à sens unique : calculer le condensat à partir d'une entrée est rapide, mais retrouver l'entrée à partir du seul condensat est computationnellement infaisable. Un changement d'un seul bit dans l'entrée produit un condensat 160 bits entièrement différent — propriété appelée effet avalanche. SHA-1 projette un espace d'entrée arbitrairement grand sur une sortie fixe de 160 bits, ce qui signifie que des collisions (deux entrées différentes produisant le même condensat) doivent exister mathématiquement. La garantie de sécurité d'une fonction de hachage est que trouver de telles collisions devrait nécessiter environ 2^80 opérations — la moitié de la longueur en bits de la sortie.

En 2017, Google et CWI Amsterdam ont publié l'attaque SHAttered, démontrant la première collision SHA-1 pratique en produisant deux fichiers PDF différents avec le même condensat. L'attaque a nécessité environ 2^63.1 calculs SHA-1 — bien en dessous de la borne théorique de 2^80. En 2020, Gaetan Leurent et Thomas Peyrin ont encore réduit ce coût avec une attaque par collision à préfixe choisi nécessitant environ 2^63.4 opérations. En conséquence, tous les grands navigateurs, autorités de certification et organismes de normalisation ont déprécié SHA-1 pour les signatures numériques et les certificats TLS. SHA-1 reste néanmoins utilisé pour des usages non sécuritaires : identifiants d'objets Git (bien que Git migre vers SHA-256), constructions HMAC héritées, et vérifications d'intégrité de fichiers où la résistance aux collisions adversariales n'est pas requise.

Pourquoi utiliser ce générateur SHA-1 ?

Générez des condensats SHA-1 instantanément sans rien installer ni écrire de code. Collez votre texte et obtenez le condensat hexadécimal de 40 caractères en temps réel — utile pour vérifier des sommes de contrôle héritées, déboguer les rouages de Git, ou tester des flux de travail basés sur le hachage.

Hachage instantané
La sortie se met à jour au fil de la saisie. Pas de clics, pas d'attente — le condensat SHA-1 apparaît caractère par caractère à mesure que vous modifiez l'entrée.
🔒
Traitement axé sur la confidentialité
Tout le hachage s'exécute localement dans votre navigateur via la Web Crypto API. Votre texte ne quitte jamais votre appareil et n'est jamais envoyé à un serveur.
📋
Copie en un clic
Copiez le condensat dans le presse-papiers d'un seul clic. Basculez entre les sorties hexadécimales en minuscules et en majuscules pour correspondre au format attendu par votre système.
🔍
Sans compte requis
Pas d'inscription, pas de connexion, pas de limites d'utilisation. Ouvrez la page et commencez à hacher immédiatement. Fonctionne sur tout appareil avec un navigateur moderne.

Cas d'utilisation de SHA-1

Rouages de Git et débogage
Git identifie chaque objet (commit, arbre, blob, tag) par son condensat SHA-1. Lors du débogage de commandes Git de bas niveau, de la vérification de fichiers pack, ou de l'écriture d'outils Git personnalisés, un générateur SHA-1 rapide aide à recouper les identifiants d'objets avec les valeurs attendues.
Vérification de systèmes hérités
De nombreux systèmes anciens, registres de paquets et mécanismes de mise à jour de firmware publient encore des sommes de contrôle SHA-1 avec leurs téléchargements. Générez et comparez des condensats SHA-1 pour vérifier l'intégrité des fichiers quand les condensats SHA-256 ne sont pas disponibles.
Intégrité des sous-ressources (SRI)
Bien que sha256 et sha384 soient préférés pour les condensats SRI dans les balises HTML script et link, certaines configurations CDN héritées reposent encore sur SHA-1. Générez le condensat attendu pour auditer ou faire migrer des attributs SRI existants.
Assurance qualité et tests de régression
Comparez les condensats SHA-1 de réponses d'API, d'artefacts de build ou de snapshots de base de données entre les exécutions de tests pour détecter des changements inattendus sans effectuer un diff octet par octet de sorties volumineuses.
Déduplication de données
Calculez les condensats SHA-1 du contenu de fichiers ou d'enregistrements dans des pipelines ETL pour identifier les doublons. La sortie 160 bits offre une garantie d'unicité plus forte que MD5 pour les scénarios de déduplication non adversariaux.
Apprentissage et formation
SHA-1 est un algorithme bien documenté avec une abondante littérature académique. Expérimentez-le pour comprendre la construction de Merkle-Damgard, la planification des messages, et pourquoi la résistance aux collisions se dégrade quand la longueur de sortie est trop courte par rapport à la puissance de calcul moderne.

SHA-1 vs autres algorithmes de hachage

SHA-1 produit un condensat de 160 bits — plus long que MD5 (128 bits) mais nettement plus court que les algorithmes de la famille SHA-2. Le tableau ci-dessous compare les tailles de condensat, les normes et les cas d'utilisation appropriés pour chaque algorithme.

AlgorithmeTaille du condensatLongueur hexNormeIdéal pour
SHA-1160 bits40 hex chars1995 / RFC 3174Deprecated — legacy git commits, old TLS
SHA-256256 bits64 hex chars2001 / FIPS 180-4TLS certificates, blockchain, JWTs
SHA-384384 bits96 hex chars2001 / FIPS 180-4Government systems, higher security margin
SHA-512512 bits128 hex chars2001 / FIPS 180-4Digital signatures, HMAC with large keys
MD5128 bits32 hex chars1992 / RFC 1321Checksums only — broken since 2004
SHA-3256 bits64 hex chars2015 / FIPS 202Post-quantum readiness, alternative to SHA-2
BLAKE3256 bits64 hex chars2020High-performance checksums, Merkle trees

Comment fonctionne SHA-1

SHA-1 suit la construction de Merkle-Damgard : le message est complété (padded), découpé en blocs de 512 bits, et chaque bloc est traité à travers 80 tours d'opérations bit à bit qui mélangent l'entrée avec un programme de messages dérivé du bloc. Cinq mots d'état de 32 bits (H0 à H4) transportent l'état de hachage en cours, et la concaténation finale de ces mots produit le condensat de 160 bits.

Input: "hello world"
SHA-1: 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed
(160 bits = 20 bytes = 40 hex characters)
ÉtapeDescription
PaddingAppend a 1-bit, then zeros, until message length is 448 mod 512. Append the original length as a 64-bit big-endian integer.
Block splittingDivide the padded message into 512-bit (64-byte) blocks.
ExpansionExpand each 16-word block into 80 words using a left-rotate-by-1 XOR feedback schedule.
CompressionProcess 80 rounds per block using four nonlinear functions (Ch, Parity, Maj, Parity) across rounds 0-19, 20-39, 40-59, and 60-79.
OutputConcatenate the five 32-bit state words (H0-H4) into a 160-bit (20-byte) digest, rendered as 40 hexadecimal characters.

La différence clé entre SHA-1 et MD5 réside dans le nombre de mots d'état (5 vs. 4), le nombre de tours par bloc (80 vs. 64), et l'utilisation d'un programme de messages avec retour de rotation gauche. Ces différences donnent à SHA-1 une sortie plus grande (160 vs. 128 bits) et offraient initialement une marge de sécurité plus élevée, bien que les deux algorithmes soient désormais considérés comme compromis pour la résistance aux collisions.

Exemples de code

Comment générer des condensats SHA-1 dans les langages et environnements courants. Contrairement à MD5, SHA-1 est disponible dans la Web Crypto API du navigateur, ce qui le rend utilisable sans bibliothèques externes aussi bien dans le navigateur que dans Node.js.

JavaScript (Web Crypto API — browser & Node.js)
// SHA-1 is available in the Web Crypto API
async function sha1(text) {
  const data = new TextEncoder().encode(text)
  const hashBuffer = await crypto.subtle.digest('SHA-1', data)
  const hashArray = Array.from(new Uint8Array(hashBuffer))
  return hashArray.map(b => b.toString(16).padStart(2, '0')).join('')
}

await sha1('hello world')
// → "2aae6c35c94fcfb415dbe95f408b9ce91ee846ed"

// Node.js (built-in crypto module)
const crypto = require('crypto')
crypto.createHash('sha1').update('hello world').digest('hex')
// → "2aae6c35c94fcfb415dbe95f408b9ce91ee846ed"
Python
import hashlib

# Basic SHA-1 hash
result = hashlib.sha1(b'hello world').hexdigest()
print(result)  # → "2aae6c35c94fcfb415dbe95f408b9ce91ee846ed"

# Hash a string (encode to bytes first)
text = 'hello world'
hashlib.sha1(text.encode('utf-8')).hexdigest()
# → "2aae6c35c94fcfb415dbe95f408b9ce91ee846ed"

# Hash a file in chunks
with open('file.bin', 'rb') as f:
    sha1 = hashlib.sha1()
    for chunk in iter(lambda: f.read(8192), b''):
        sha1.update(chunk)
    print(sha1.hexdigest())
Go
package main

import (
    "crypto/sha1"
    "fmt"
)

func main() {
    data := []byte("hello world")
    hash := sha1.Sum(data)
    fmt.Printf("%x\n", hash)
    // → 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed
}
CLI (Linux / macOS)
# Using sha1sum (Linux) or shasum (macOS)
echo -n "hello world" | sha1sum
# → 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed  -

# macOS
echo -n "hello world" | shasum -a 1
# → 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed  -

# Hash a file
sha1sum package.json
# → a1b2c3d4e5f6...  package.json

# Using openssl (cross-platform)
echo -n "hello world" | openssl sha1
# → SHA1(stdin)= 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed

Questions fréquentes

SHA-1 est-il encore sûr à utiliser ?
SHA-1 n'est pas sûr pour les applications sensibles à la sécurité. L'attaque SHAttered de 2017 a démontré une génération de collision pratique, et l'attaque à préfixe choisi de 2020 a encore réduit le coût. Pour les signatures numériques, les certificats TLS, ou tout scénario où un adversaire pourrait fabriquer des entrées en collision, utilisez SHA-256 ou SHA-3 à la place. Pour les usages non sécuritaires comme les sommes de contrôle et les clés de cache où aucun adversaire ne contrôle l'entrée, SHA-1 reste fonctionnel.
Quelle est la différence entre SHA-1 et SHA-256 ?
SHA-1 produit un condensat de 160 bits (40 caractères hex) et est vulnérable aux attaques par collision. SHA-256 produit un condensat de 256 bits (64 caractères hex) et appartient à la famille SHA-2, pour laquelle aucune attaque pratique n'est connue. SHA-256 est environ 20 à 30 % plus lent que SHA-1 sur le même matériel, mais les 96 bits supplémentaires de sortie et l'absence de faiblesses structurelles connues en font la recommandation par défaut pour tout nouveau projet.
Pourquoi Git utilise-t-il SHA-1 ?
Quand Linus Torvalds a conçu Git en 2005, SHA-1 était considéré comme sûr et offrait un bon équilibre entre vitesse et résistance aux collisions pour le stockage adressable par contenu. Git utilise SHA-1 comme identifiant de contenu, pas comme mécanisme de sécurité — il détecte la corruption accidentelle, pas la falsification adversariale. Depuis 2021, Git est en cours de migration vers SHA-256 via le cadre d'extension de hachage décrit dans le plan git-hash-function-transition.
Peut-on inverser un condensat SHA-1 pour retrouver l'entrée originale ?
Non. SHA-1 est une fonction à sens unique qui perd de l'information lors du hachage. Pour les entrées courtes ou communes, des attaquants peuvent utiliser des tables arc-en-ciel ou une recherche par force brute pour trouver le texte en clair original, mais ce n'est pas une inversion de l'algorithme — c'est une recherche exhaustive de l'espace d'entrée. Pour les mots de passe, utilisez bcrypt, scrypt ou Argon2 plutôt que toute fonction de hachage rapide.
Comment fonctionne l'attaque SHAttered ?
L'attaque SHAttered exploite des faiblesses structurelles dans la fonction de compression de SHA-1. En construisant soigneusement deux blocs de messages différents de 512 bits qui produisent le même état de hachage intermédiaire, les attaquants ont créé deux fichiers PDF avec des condensats SHA-1 identiques mais un contenu visible différent. L'attaque a nécessité environ 2^63 calculs SHA-1 — soit environ 6 500 ans de temps CPU unique, mais faisable sur un cluster GPU en quelques mois. Le coût a depuis encore diminué grâce à des techniques améliorées.
Quelle est la différence entre SHA-1 et HMAC-SHA1 ?
SHA-1 est une fonction de hachage simple : condensat = SHA1(message). HMAC-SHA1 est un code d'authentification de message à clé : mac = HMAC(clé, message). HMAC enveloppe la fonction de hachage dans une construction qui prévient les attaques par extension de longueur et nécessite une clé secrète. Fait notable, HMAC-SHA1 reste considéré comme sûr pour l'authentification de messages même si SHA-1 lui-même est compromis pour la résistance aux collisions, car la sécurité de HMAC dépend des propriétés pseudoaléatoires de la fonction de compression, et non de la résistance aux collisions.
Vaut-il mieux utiliser SHA-1 ou MD5 pour les sommes de contrôle de fichiers ?
SHA-1 est un meilleur choix que MD5 pour les sommes de contrôle de fichiers. MD5 produit un condensat de 128 bits et est compromis depuis 2004, avec des attaques par collision pratiques exécutables en quelques secondes. SHA-1 produit un condensat de 160 bits et ses attaques par collision, bien que démontrées, restent plus coûteuses. Cependant, pour tout nouveau système, préférez SHA-256 — il offre un condensat de 256 bits sans attaques pratiques connues et est bien pris en charge sur toutes les plateformes et langages.