Maison  >  Article  >  développement back-end  >  Md5 peut-il être déchiffré ?

Md5 peut-il être déchiffré ?

阿神
阿神original
2017-03-14 22:47:3114609parcourir

Quiconque a été en contact avec md5 sait que md5 ne peut pas être déchiffré, mais pourquoi de nombreux sites Web sur Internet prétendent-ils être capables de déchiffrer MD5 ? Cet article abordera ce problème ?


Tout d'abord, comme indiqué sur Internet, il existe de nombreuses versions crackées de md5 qui peuvent être inversées, mais elles sont uniquement basées sur l'exécution d'un dictionnaire. Le soi-disant dictionnaire en cours d'exécution consiste à utiliser le codage md5 de certains mots et expressions couramment utilisés à des fins de comparaison. Avis! C'est "couramment utilisé" !
Si quelqu'un ne comprend pas ce que signifie couramment utilisé, laissez-moi vous donner un exemple mathématique.
Supposons que lorsque x=1, y=1 et lorsque x=0, y=0, quelle est la première réaction de chacun à cette fonction ? y=x^n(n>0)or (y-0.5)^2 (x-0.5)^2=(0.5)^2
Il s'agit d'une fonction couramment utilisée.
Alors qu'est-ce qui n'est pas couramment utilisé ? C'est toujours la même condition que ci-dessus : y=log2(x 1)
Eh bien, c'est en fait une fonction = = couramment utilisée, mais c'est trop compliqué d'en compiler une moins couramment utilisée - s'il vous plaît pardonnez-moi d'être paresseux.
Soudain, j'ai eu une idée et j'ai pensé à une fonction peu courante : y=∫(limite supérieure 1)(limite inférieure 0)(8x^3 8x^2-16x)dx.


Regardons un exemple :

MD5 traite les informations d'entrée en groupes de 512 bits. Chaque groupe est divisé en 16 sous-groupes de 32 bits. Après une série de traitements, la sortie de l'algorithme se compose de quatre groupes de 32 bits. les groupes sont La concaténation des groupes produira une valeur de hachage de 128 bits. Dans l'algorithme MD5, les informations doivent d'abord être traitées de manière à ce que leur longueur d'octet soit de 448 après le reste de 512. Par conséquent, la longueur en octets des informations sera étendue à N*512 448, soit N*64 56 octets, où N est un entier positif. La méthode de remplissage est la suivante : remplissez un 1 à la fin de l'information, puis complétez-le par 0 jusqu'à ce que les conditions soient remplies. Ce résultat est ensuite ajouté à une longueur d'informations de pré-remplissage dans une représentation binaire de 64 bits. Après ces deux étapes de traitement, la longueur directe de l'information est transformée en N*512 448 64=(N 1)*512, c'est-à-dire que la longueur est exactement un multiple entier de 512. Ceci est fait pour répondre aux exigences de longueur des informations lors du traitement ultérieur.

Il existe quatre paramètres entiers de 32 bits appelés variables de connexion dans MD5, qui sont :

A=0x01234567;

B=0x89abcdef;

C=0xfedcba98;

D=0x76543210.

Il existe également 4 fonctions d'opération de bits de traitement, ce sont :

F(X,Y,Z)=(X&Y)|((~X)&Z);

G(X,Y,Z)=(X&Z)|(Y&(~Z));

H(X,Y,Z)=X^Y^Z;

Je(X,Y,Z)=Y^(X|(~Z));

Parmi eux, X, Y, Z représentent respectivement n'importe quel entier de 32 bits. & est l'opération AND, | est l'opération OR, ~ est l'opération NOT et ^ est l'opération XOR [4].

Les étapes spécifiques sont :

Tout d’abord, copiez A dans la variable a, B dans la variable b, C dans la variable c et D dans la variable d. Ensuite, quatre tours de la boucle principale sont effectués, chaque tour effectuant 16 opérations. Chaque opération effectue une opération de fonction non linéaire sur trois des a, b, c et d, puis ajoute le résultat à la quatrième variable, un sous-groupe du texte et une constante. Déplacez ensuite le résultat vers la droite d’un nombre indéfini et ajoutez l’un des a, b, c et d.


À partir de l'exemple ci-dessus, nous pouvons clairement savoir que md5 consiste à simplifier le contenu du texte de n'importe quelle longueur en un nombre de hachage de 128 bits. Que le contenu du texte ne comporte qu'une seule lettre a ou un long article de plus de 10 000 mots, le tout est réduit (ou rempli) en un nombre de hachage de 128 bits. Cela rend la fissuration presque impossible.

Pourquoi tu dis ça ? Toujours dans l'exemple de tout à l'heure, je vous dis le résultat "x=0, quand y=0; quand x=1, y=1" mais je ne vous le dis pas (en fait, personne ne comptera le nombre de caractères dans le document) de quel type de fonction s'agit-il ? , est-ce une fonction log, une fonction linéaire ou une fonction d'ordre supérieur ? Je ne sais pas, comment puis-je le cracker ?

De plus, en effet, dans le domaine du cryptage, DES et RSA sont le véritable cryptage, tandis que MD5 est davantage utilisé pour la vérification des documents et sert à générer des clés pour détecter si le document a été falsifié.

Après avoir vu cela, cela devrait être clair pour tout le monde md5 ne peut pas être déchiffré


De plus, deux bons points de connaissance :

1.Le soi-disant cryptage :

La technologie de cryptage est la méthode de sécurité et de confidentialité la plus couramment utilisée. Elle utilise des moyens techniques pour transformer les données importantes en codes tronqués (cryptés) pour la transmission, puis les restaure (déchiffre) en utilisant des moyens identiques ou différents une fois arrivés à destination.
La technologie de cryptage se compose de deux éléments : l'algorithme et l'algorithme sont des étapes qui combinent des informations ordinaires ou des informations compréhensibles avec une chaîne de nombres pour générer un texte chiffré incompréhensible, et les clés sont utilisées pour coder et déchiffrer les données d'un algorithme. En matière de sécurité et de confidentialité, la sécurité des communications d'informations sur le réseau peut être assurée grâce à une technologie de cryptage à clé et à des mécanismes de gestion appropriés.

2.Le soi-disant hachage :

Le hachage, généralement traduit par « hachage », et également directement translittéré par « hachage », consiste à transformer une entrée de n'importe quelle longueur (également appelée pré-mapping, pré-image) en une entrée de longueur fixe via un algorithme de hachage. la sortie est la valeur de hachage. Cette conversion est un mappage de compression, c'est-à-dire que l'espace des valeurs de hachage est généralement beaucoup plus petit que l'espace des entrées. Différentes entrées peuvent être hachées dans la même sortie, et il est impossible de déterminer de manière unique la valeur d'entrée à partir de la valeur de hachage. .
En termes simples, il s'agit d'une fonction qui compresse un message de n'importe quelle longueur en un résumé d'informations de longueur fixe.
HASH est principalement utilisé pour les algorithmes de cryptage dans le domaine de la sécurité de l'information. Il convertit des informations de différentes longueurs en un code désordonné de 128 bits, appelé valeur HASH. On peut également dire que le hachage consiste à trouver un contenu de données et. adresse de stockage des données. la relation de mappage entre eux.
L'application de l'algorithme de hachage dans la sécurité de l'information se reflète principalement dans les trois aspects suivants :
1) Vérification des fichiers
Les algorithmes de vérification que nous connaissons mieux incluent le contrôle de parité et le contrôle CRC. Ces deux sommes de contrôle ne le font pas. ont la capacité de résister à la falsification des données. Ils peuvent détecter et corriger les erreurs de canal dans la transmission des données dans une certaine mesure, mais ils ne peuvent pas empêcher les dommages malveillants aux données.
La fonctionnalité « empreinte numérique » de l'algorithme de hachage MD5 en fait l'algorithme de somme de contrôle d'intégrité de fichier (Somme de contrôle) le plus largement utilisé. De nombreux systèmes Unix fournissent des commandes pour calculer la somme de contrôle md5.
2) Signature numérique
L'algorithme de hachage est également un élément important du système de cryptographie moderne. Étant donné que les algorithmes asymétriques fonctionnent lentement, les fonctions de hachage unidirectionnelles jouent un rôle important dans les protocoles de signature numérique. La signature numérique d'une valeur de hachage, également connue sous le nom de « résumé numérique », peut être considérée comme statistiquement équivalente à la signature numérique du fichier lui-même. Et un tel accord présente d’autres avantages.
3) Protocole d'authentification
Le protocole d'authentification suivant est également appelé "mode défi-authentification : lorsque le canal de transmission peut être intercepté mais ne peut pas être falsifié, il s'agit d'une méthode simple et sûre.

Articles connexes :
Algorithmes et outils de cryptage et décryptage php md5 (avec code)
Partage de code de décryptage php md5 (avec interface, test personnel) Disponible)
Le cryptage php md5 peut-il être craqué
Outil de cryptage MD5

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn