Outil pour décoder/encoder avec SHA1 (Secure Hash Algorithm) à 40 caractères (en hexadécimal) généralement utilisé en cryptographie.
SHA-1 - dCode
Catégorie(s) : Fonction de Hachage, Cryptographie Moderne
dCode est gratuit et ses outils sont une aide précieuse dans les jeux, les maths, les énigmes, les géocaches, et les problèmes à résoudre au quotidien !
Une suggestion ? un problème ? une idée ? Écrire à dCode !
SHA-1 (pour Secure Hash Algorithm 1) est un algorithme de hachage cryptographique développé par la NSA transformant une entrée de données de taille variable en une empreinte fixe de 160 bits (40 caractères hexadécimaux). Cette empreinte est conçue pour être unique et déterministe : la même entrée produira toujours le même hash, ceci permet de garantir l'intégrité de la donnée initiale (un fichier ou un message).
L'algorithme SHA-1 prend une chaîne de données et la passe par plusieurs étapes de traitement (ajouts de bits, découpages, opérations logiques et rotations). L'algorithme utilise des fonctions non linéaires, voici les 3 fonctions principales du SHA-1 :
$$ C(x,y,z) = (x \wedge y) \vee (\lnot x \wedge z) \\ P(x,y,z) = x \oplus y \oplus z \\ M(x,y,z) = (x \wedge y) \vee (x \wedge z) $$
Avec $ x,y,z $ des portions de la chaine à encoder ou des valeurs fixes parmi : 0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0 (et d'autres)
Ces opérations sont conçues pour que toute modification de l'entrée entraîne un changement important de l'empreinte, ce qui rend difficile la prédiction du résultat.
Exemple : dCode se chiffre avec l'empreinte 15fc6eed5ed024bfb86c4130f998dde437f528ee
Le chiffrement étant un hachage basé sur des fonctions non linéaires, il n'existe pas de méthode de déchiffrement. Cela signifie que pour retrouver le mot de passe correspondant à un hash sha-1, il n'y a pas d'autre choix que de tenter tous les mots de passe possibles !
Techniquement, cette opération prendrait plusieurs milliers d'années, même sur le plus puissant des ordinateurs du monde. Cependant, la liste des mots de passe utilisés dans le monde réel est plus restreinte, et il devient possible de précalculer les empreintes les plus probables.
dCode utilise ses bases de données de mots (10 millions de mots de passe potentiels) pour accélérer ce traitement. Cependant, si le password est rare, ou combiné à du salage, il ne sera probablement pas retrouvé.
Le hash est composé d'exactement 40 caractères hexadécimaux parmi 0123456789abcdef (parfois les majuscules sont utilisées).
Plus rarement le hash est stocké comme une chaine binaire de 20 octets.
Il est possible de compliquer la recherche par bases de données en ajoutant du sel (salt en anglais) au mot. Le sel est généralement un préfixe ou un suffixe. En effet, s'il est déjà difficile mais possible de précalculer les empreintes des mots, il devient encore plus difficile de précalculer avec tous les préfixes et suffixes possibles.
Exemple : SHA1(dCode) = 15fc6eed5ed024bfb86c4130f998dde437f528ee mais SHA1(dCodeSUFFIX) = 9b63fcb31388acee8879018244a3d107033890f1
Une autre variante (déconseillée) est l'application du DOUBLE SHA1, qui consiste a appliquer SHA1 deux fois (la première fois sur la chaine originale, puis la seconde fois sur l'empreinte calculée).
Une table arc-en-ciel (rainbow table) est une base de données de mots avec tous les hash précalculés et rangés de manière à accélérer et pouvoir paralléliser les calculs d'empreintes.
Liste de hashs SHA-1 magiques :
Chaine | SHA1(Chaine) |
---|---|
aa3OFF9m | 0e36977786278517984959260394024281014729 |
aaK1STfY | 0e76658526655756207688271159624026011393 |
aaO8zKZF | 0e89257456677279068558073954252716165668 |
aaroZmOk | 0e66507019969427134894567494305185566735 |
Bonus chaines magiques de type SHA-1 qui peuvent aussi s'évaluer à 0 : 0e00000000000000000000081614617300000000 ou 0e00000000000000000000721902017120000000
L'algorithme SHA-1 était largement répandu avant que des failles de sécurité n'en limitent l'utilisation dans les contextes nécessitant une haute sécurité.
En 2017, une équipe de chercheurs de Google et de CWI Amsterdam a publiquement démontré une collision pratique de SHA-1, nommée SHAttered ici
Ces failles permettent à un attaquant de créer deux messages différents ayant la même empreinte, en contournant les garanties d'intégrité offertes par la fonction de hachage.
Des algorithmes plus robustes tels que SHA-256 ou SHA-3 sont aujourd'hui recommandés.
SHA1 veut dire Secure Hash Algorithm (version 1)
SHA1 a été proposé par la National Security Agency en 1995.
dCode se réserve la propriété du code source pour "SHA-1". Sauf code licence open source explicite (indiqué Creative Commons / gratuit), l'algorithme pour "SHA-1", l'applet ou snippet (convertisseur, solveur, chiffrement / déchiffrement, encodage / décodage, encryptage / décryptage, traducteur) ou les fonctions liées à "SHA-1" (calculer, convertir, résoudre, décrypter / encrypter, déchiffrer / chiffrer, décoder / encoder, traduire) codés en langage informatique (Python, Java, C#, PHP, Javascript, Matlab, etc.) ou les données, en téléchargement, script, ou les accès API à "SHA-1" ne sont pas publics, idem pour un usage hors ligne, PC, mobile, tablette, appli iPhone ou Android !
Rappel : dCode est gratuit.
Le copier-coller de la page "SHA-1" ou de ses résultats est autorisée (même pour un usage commercial) tant que vous créditez dCode !
L'exportation des résultats sous forme de fichier .csv ou .txt est gratuite en cliquant sur l'icone export
Citer comme source bibliographique :
SHA-1 sur dCode.fr [site web en ligne], consulté le 25/03/2025,