Outil pour décoder/encoder avec la fonction MD5 automatiquement, déchiffrement via un immense dictionnaire de mot de passe potentiels.
MD5 - 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 !
Le hachage MD5 calcule à partir de données informatiques une empreinte numérique de 32 caractères hexadécimaux. L'algorithme utilise des fonctions non linéaires, voici les 4 fonctions principales du MD5 :
$$ F(B,C,D) = (B\wedge{C}) \vee (\neg{B} \wedge{D}) $$
$$ G(B,C,D) = (B\wedge{D}) \vee (C \wedge \neg{D}) $$
$$ H(B,C,D) = B \oplus C \oplus D $$
$$ I(B,C,D) = C \oplus (B \vee \neg{D}) $$
Exemple : dCode se chiffre e9837d47b610ee29399831f917791a44 ce n'est pas le même que pour dcode (sans la majuscule) qui vaut a9d3d129549e80065aa8e109ec40a7c8
Le MD5 est basé sur des fonctions non linéaires (et parfois non réversibles), ainsi il n'existe pas de méthode de déchiffrement.
Cependant, une méthode bête et brute, la plus basique mais aussi la plus longue et coûteuse, est de tester tous les mots possibles dans un dictionnaire pour vérifier si leur empreinte est celle recherchée.
dCode utilise ses bases de données de mots (2 millions de mots de passe potentiels) dont est déjà pré-calculé le hash MD5. Ces tables s'appellent des tables arc-en-ciel.
Si un mot n'est pas dans le dictionnaire, alors le déchiffrement échouera.
Le hash est composé de 32 caractères hexadécimaux 0123456789abcdef, soit 128 bits.
Statistiquement parlant, pour toute chaîne de caractères (et il y en a un nombre infini), le MD5 associe pour une valeur donnée une empreinte de 128 bits (soit un nombre fini de possibilités). Il est donc obligatoire qu'il existe des collisions (2 chaînes de caractères ayant la même empreinte). Plusieurs travaux de recherche sur le sujet ont démontré que l'algorithme MD5, bien que créant une grande entropie des données, pouvait être attaqué, et qu'il était possible de générer des chaînes avec les mêmes empreintes (après plusieurs heures de savant calculs).
Exemple : Découverts par Wang & Yu dans How to break MD5 and other hash functions, les valeurs hexadecimales (les valeurs et pas les chaînes ASCII) 4dc968ff0ee35c209572d4777b721587d36fa7b21bdc56b74a3dc0783e7b9518afbfa200a8284bf36e8e4b55b35f427593d849676da0d1555d8360fb5f07fea2
4dc968ff0ee35c209572d4777b721587d36fa7b21bdc56b74a3dc0783e7b9518afbfa202a8284bf36e8e4b55b35f427593d849676da0d1d55d8360fb5f07fea2
ont le même hash : 008ee33a9d58b51cfeb425b0959121c9 (alors qu'ils ne diffèrent que de 8 chiffres hexadécimaux) (merci @papaa#9319)
Depuis cette publication en 2005, le chiffrement MD5 n'est plus considéré comme sur cryptographiquement, laissant la place à ses successeurs : SHA1 puis SHA256.
Le MD5 est menacé par les capacités de calcul grandissantes des super-ordinateurs et processeurs capables de paralléliser les fonctions de hashage. Ainsi, pour compliquer la recherche par les tables arc-en-ciel (bases de données), il est recommander d'ajouter du sel (un préfixe ou un suffixe) au mot de passe. Avec cette étape de salage, les tables précalculées doivent à nouveau être calculées pour tenir compte du sel qui modifie systématiquement toutes les empreintes.
Exemple : MD5(dCode) = e9837d47b610ee29399831f917791a44 mais MD5(dCodeSUFFIX) = 523e9a807fc1d2766c3e3d8f132d4991
Une autre variante est l'application du DOUBLE MD5, qui consiste à ré-appliquer sur l'empreinte.
Exemple : MD5(dCode) = e9837d47b610ee29399831f917791a44 et MD5(MD5(dCode)) = c1127c7b6fdcafd97a96b37eaf035eaf
MD5 n'est pas la seule fonction de hashage, il existe aussi SHA1, SHA256, SHA512 etc.
MD5 veut dire Message Digest 5
Le langage PHP possède une fonctionnalité par défaut : le type juggling (Manipulation de types) qui permet de ne pas avoir à définir le type de variable utilisé, le moteur de PHP tente de détecter automatiquement si la variable est une chaîne, un entier, etc.
Cependant cette fonctionnalité peut devenir une faille lors de la manipulation de chaîne MD5 dont la valeur a la forme 0e suivi de chiffres entre 0 et 9. En effet, dans ce cas, le moteur de PHP va convertir la chaîne en un nombre flottant ayant la valeur 0.
Voici une liste de hashs MD5 magiques :
Chaine | MD5(Chaine) |
---|---|
ABJIHVY | 0e755264355178451322893275696586 |
DQWRASX | 0e742373665639232907775599582643 |
DYAXWCA | 0e424759758842488633464374063001 |
EEIZDOI | 0e782601363539291779881938479162 |
GEGHBXL | 0e248776895502908863709684713578 |
GGHMVOE | 0e362766013028313274586933780773 |
GZECLQZ | 0e537612333747236407713628225676 |
IHKFRNS | 0e256160682445802696926137988570 |
MAUXXQC | 0e478478466848439040434801845361 |
MMHUWUV | 0e701732711630150438129209816536 |
NOOPCJF | 0e818888003657176127862245791911 |
NWWKITQ | 0e763082070976038347657360817689 |
PJNPDWY | 0e291529052894702774557631701704 |
QLTHNDT | 0e405967825401955372549139051580 |
QNKCDZO | 0e830400451993494058024219903391 |
Bonus des chaînes qui peuvent aussi s'évaluer à 0 : 0e215962017, 0e730083352, 0e807097110, 0e840922711
MD5 a été proposé par Ronald Rivest en 1991
dCode se réserve la propriété du code source pour "MD5". Sauf code licence open source explicite (indiqué Creative Commons / gratuit), l'algorithme pour "MD5", l'applet ou snippet (convertisseur, solveur, chiffrement / déchiffrement, encodage / décodage, encryptage / décryptage, traducteur) ou les fonctions liées à "MD5" (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 à "MD5" 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 "MD5" ou de ses résultats est autorisée tant que vous citez 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 :
MD5 sur dCode.fr [site web en ligne], consulté le 24/03/2023,