Heim >Backend-Entwicklung >PHP-Tutorial >Kann MD5 entschlüsselt werden?

Kann MD5 entschlüsselt werden?

阿神
阿神Original
2017-03-14 22:47:3114670Durchsuche

Jeder, der mit MD5 in Berührung gekommen ist, weiß, dass MD5 nicht entschlüsselt werden kann, aber warum gibt es im Internet viele Websites, die behaupten, MD5 knacken zu können?


Erstens gibt es, wie im Internet erwähnt, viele geknackte Versionen von MD5, die rückgängig gemacht werden können, aber sie basieren nur auf der Ausführung eines Wörterbuchs. Beim sogenannten Wörterbuchlauf wird die MD5-Codierung einiger häufig verwendeter Wörter und Phrasen zum Vergleich verwendet. Beachten! Es ist „häufig verwendet“!
Wenn jemand nicht versteht, was häufig verwendet wird, möchte ich Ihnen ein mathematisches Beispiel geben.
Angenommen, wenn x=1, y=1 und wenn x=0, y=0, was ist die erste Reaktion aller auf diese Funktion? y=x^n(n>0)or (y-0.5)^2+(x-0.5)^2=(0.5)^2
Dies ist eine häufig verwendete Funktion.
Was wird dann nicht häufig verwendet? Es ist immer noch die gleiche Bedingung wie oben: y=log2(x+1)
Nun, es ist tatsächlich eine häufig verwendete Funktion = =, aber es ist zu mühsam, eine weniger häufig verwendete Funktion zu kompilieren – bitte verzeihen Sie mir, dass ich faul bin.
Plötzlich hatte ich eine Idee und dachte an eine ungewöhnliche Funktion: y=∫(obere Grenze 1)(untere Grenze 0)(8x^3+8x^2-16x)dx.


Schauen wir uns ein Beispiel an:

MD5 verarbeitet die Eingabeinformationen in 512-Bit-Gruppen. Nach einer Reihe von Verarbeitungen besteht die Ausgabe des Algorithmus aus diesen vier 32-Bit-Untergruppen. Gruppen sind Die Gruppenverkettung erzeugt einen 128-Bit-Hashwert. Im MD5-Algorithmus müssen die Informationen zunächst so verarbeitet werden, dass ihre Bytelänge nach dem Rest von 512 448 beträgt. Daher wird die Bytelänge der Informationen auf N*512+448 erweitert, also N*64+56 Bytes, wobei N eine positive ganze Zahl ist. Die Füllmethode ist wie folgt: Geben Sie am Ende der Informationen eine 1 ein und ergänzen Sie sie dann mit 0, bis die Bedingung erfüllt ist. An dieses Ergebnis wird dann eine Pre-Padding-Informationslänge angehängt, die in 64-Bit-Binärform ausgedrückt wird. Nach diesen beiden Verarbeitungsschritten ändert sich die direkte Länge der Informationen zu N*512+448+64=(N+1)*512, d. h. die Länge ist genau ein ganzzahliges Vielfaches von 512. Dies geschieht, um die Anforderungen an die Informationslänge bei der nachfolgenden Verarbeitung zu erfüllen.

In MD5 gibt es vier 32-Bit-Ganzzahlparameter, die als Verbindungsvariablen bezeichnet werden:

A=0x01234567;

B=0x89abcdef;

C=0xfedcba98;

D=0x76543210.

Es gibt auch 4 Verarbeitungsbit-Operationsfunktionen:

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

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

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

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

Unter diesen repräsentieren X, Y und Z jeweils eine beliebige 32-Bit-Ganzzahl. & ist die UND-Operation, | ist die ODER-Operation, ~ ist die NICHT-Operation und ^ ist die XOR-Operation [4].

Die spezifischen Schritte sind:

Kopieren Sie zunächst A in die Variable a, B in die Variable b, C in die Variable c und D in die Variable d. Anschließend werden vier Runden der Hauptschleife durchgeführt, wobei jede Runde 16 Operationen durchführt. Jede Operation führt eine nichtlineare Funktionsoperation für drei von a, b, c und d aus und fügt das Ergebnis dann einer vierten Variablen, einer Untergruppe des Textes und einer Konstante hinzu. Verschieben Sie dann das Ergebnis um eine unbestimmte Zahl nach rechts und fügen Sie a, b, c und d hinzu.


Aus dem obigen Beispiel können wir klar erkennen, dass MD5 den Textinhalt beliebiger Länge in eine 128-Bit-Hash-Zahl vereinfachen soll. Unabhängig davon, ob der Textinhalt nur einen Buchstaben a enthält oder ein langer Aufsatz mit mehr als 10.000 Wörtern ist, wird alles in eine 128-Bit-Hash-Zahl reduziert (oder gefüllt). Dadurch ist eine Rissbildung nahezu ausgeschlossen.

Warum sagst du das? Im Beispiel gerade erzähle ich Ihnen das Ergebnis „x=0, wenn y=0; wenn x=1, y=1“, aber ich sage es Ihnen nicht (tatsächlich wird niemand zählen, wie viele Zeichen es sind). im Dokument) Was für eine Funktion ist das? Ist es eine Log-Funktion, eine lineare Funktion oder eine Funktion höherer Ordnung? Ich weiß nicht, wie kann ich es knacken?

Darüber hinaus sind DES und RSA im Bereich der Verschlüsselung tatsächlich die eigentliche Verschlüsselung, während MD5 eher zur Dokumentenüberprüfung und zur Generierung von Schlüsseln verwendet wird, um festzustellen, ob das Dokument manipuliert wurde.

Nachdem er das gesehen hat, sollte es jedem klar sein md5 kann nicht entschlüsselt werden


Darüber hinaus zwei gute Wissenspunkte:

1.Die sogenannte Verschlüsselung:

Die Verschlüsselungstechnologie ist die am häufigsten verwendete Sicherheits- und Vertraulichkeitsmethode. Sie nutzt technische Mittel, um wichtige Daten für die Übertragung in verstümmelte Codes umzuwandeln (verschlüsselt) und sie dann nach Erreichen des Ziels mit denselben oder anderen Mitteln wiederherzustellen (entschlüsselt).
Verschlüsselungstechnologie besteht aus zwei Elementen: Algorithmus und Algorithmus sind Schritte, die gewöhnliche Informationen oder verständliche Informationen mit einer Zahlenfolge kombinieren, um unverständlichen Chiffretext zu erzeugen, und Schlüssel werden zum Verschlüsseln und Entschlüsseln von Daten eines Algorithmus verwendet. Im Hinblick auf Sicherheit und Vertraulichkeit kann die Sicherheit der Netzwerkinformationskommunikation durch geeignete Schlüsselverschlüsselungstechnologie und Verwaltungsmechanismen gewährleistet werden.

2.Der sogenannte Hash:

Hash, im Allgemeinen als „Hash“ übersetzt und auch direkt als „Hash“ transkribiert, besteht darin, Eingaben beliebiger Länge (auch Pre-Mapping, Pre-Image genannt) durch einen Hash-Algorithmus in Eingaben fester Länge umzuwandeln Ausgabe ist der Hashwert. Bei dieser Konvertierung handelt es sich um eine komprimierte Zuordnung, das heißt, der Raum der Hash-Werte ist normalerweise viel kleiner als der Raum der Eingaben. Verschiedene Eingaben können in dieselbe Ausgabe gehasht werden, und es ist unmöglich, den Eingabewert eindeutig aus dem Hash-Wert zu bestimmen .
Einfach ausgedrückt handelt es sich um eine Funktion, die eine Nachricht beliebiger Länge in einen Informationsauszug fester Länge komprimiert.
HASH wird hauptsächlich für Verschlüsselungsalgorithmen im Bereich der Informationssicherheit verwendet. Es wandelt Informationen unterschiedlicher Länge in einen chaotischen 128-Bit-Code, einen sogenannten HASH-Wert, um Datenspeicheradressen-Mapping-Beziehung zwischen ihnen.
Die Anwendung des Hash-Algorithmus in der Informationssicherheit spiegelt sich hauptsächlich in den folgenden drei Aspekten wider:
1) Dateiüberprüfung
Zu den Verifizierungsalgorithmen, mit denen wir besser vertraut sind, gehören die Paritätsprüfung und die CRC-Prüfung. Diese beiden Prüfsummen sind nicht vorhanden sind in der Lage, Datenmanipulationen zu widerstehen. Sie können Kanalfehler bei der Datenübertragung bis zu einem gewissen Grad erkennen und korrigieren, aber sie können böswillige Datenschäden nicht verhindern.
Die Funktion „Digitaler Fingerabdruck“ des MD5-Hash-Algorithmus macht ihn zum am weitesten verbreiteten Algorithmus zur Dateiintegritätsprüfsumme (Prüfsumme). Viele Unix-Systeme stellen Befehle zur Berechnung der MD5-Prüfsumme bereit.
2) Digitale Signatur
Der Hash-Algorithmus ist auch ein wichtiger Bestandteil moderner Kryptografiesysteme. Da asymmetrische Algorithmen langsam arbeiten, spielen Einweg-Hash-Funktionen in digitalen Signaturprotokollen eine wichtige Rolle. Das digitale Signieren eines Hashwerts, auch „Digital Digest“ genannt, kann statistisch als gleichwertig mit dem digitalen Signieren der Datei selbst angesehen werden. Und eine solche Vereinbarung hat noch weitere Vorteile.
3) Authentifizierungsprotokoll
Das folgende Authentifizierungsprotokoll wird auch „Challenge-Authentifizierungsmodus“ genannt: Wenn der Übertragungskanal abgefangen, aber nicht manipuliert werden kann, ist dies eine einfache und sichere Methode.

Verwandte Artikel:
PHP MD5-Verschlüsselungs- und Entschlüsselungsalgorithmen und -Tools (mit Code)
PHP MD5-Entschlüsselungscode-Sharing (mit Schnittstelle, persönlicher Test) verfügbar)
Kann die PHP-MD5-Verschlüsselung geknackt werden
MD5-Verschlüsselungstool

Das obige ist der detaillierte Inhalt vonKann MD5 entschlüsselt werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn