Der vollständige Name von MD5 lautet Message-Digest-Algorithmus 5. Message-Digest bezieht sich im Allgemeinen auf die Hash-Transformation einer Bytefolge (Nachricht), bei der eine Bytefolge beliebiger Länge in eine große Ganzzahl einer bestimmten Länge umgewandelt wird. MD5 konvertiert eine „Byte-Zeichenfolge“ beliebiger Länge in eine 128-Bit-Ganzzahl und ist ein irreversibler Zeichenfolgenkonvertierungsalgorithmus. Mit anderen Worten, selbst wenn Sie das Quellprogramm und die Algorithmusbeschreibung sehen, können Sie einen MD5-Wert nicht konvertieren mathematisch gesehen wieder in die ursprüngliche Zeichenfolge konvertiert, da es unendlich viele ursprüngliche Zeichenfolgen gibt, was ein bisschen wie eine mathematische Funktion ist, die keine Umkehrfunktion hat.
Kopieren Sie den Codecode wie folgt:
import java.security.MessageDigest;
öffentliche Klasse Test_MD5{
öffentlicher finaler statischer String MD5(String s) {
char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'a', 'b', 'c', 'd', 'e', 'f' };
versuchen {
byte[]strTemp=s.getBytes();
//Erstelle ein MessageDigest-Objekt mit MD5
MessageDigestmdTemp=MessageDigest.getInstance("MD5");
mdTemp.update(strTemp);
byte[]md=mdTemp.digest();
intj=md.length;
charstr[]=newchar[j*2];
intk=0;
for(inti=0;i<j;i++){
byteb=md[i];
//System.out.println((int)b);
//Verschlüsseln Sie die Zahl (int)b mit Doppelbytes
str[k++]=hexDigits[b>>4&0xf];
str[k++]=hexDigits[b&0xf];
}
returnnewString(str);
}catch(Ausnahme){returnnull;}
}
//prüfen
publicstaticvoidmain(String[]args){
System.out.println("caidaos MD5-Verschlüsselung:/n"+Test_MD5.MD5("caidao"));
System.out.println("//www.VeVB.COm/ nach MD5-Verschlüsselung:/n"+Test_MD5.MD5("//www.VeVB.COm/"));
}
}
Eine typische Anwendung von MD5 besteht darin, einen Fingerabdruck für eine Nachricht (Byte-String) zu generieren, um zu verhindern, dass diese „manipuliert“ wird. Sie schreiben beispielsweise einen Absatz in eine Datei mit dem Namen readme.txt, generieren einen MD5-Wert für diese readme.txt und zeichnen ihn auf. Anschließend können Sie diese Datei an andere weitergeben. Wenn andere den Inhalt der Datei ändern, werden Sie ihn finden wenn Sie den MD5 dieser Datei neu berechnen. Wenn es eine Zertifizierungsstelle eines Drittanbieters gibt, kann die Verwendung von MD5 auch die „Ablehnung“ des Dateiautors verhindern. Dabei handelt es sich um die sogenannte digitale Verschlüsselungsanwendung.
MD5 wird auch häufig in der Verschlüsselungs- und Entschlüsselungstechnologie verwendet. In vielen Betriebssystemen wird das Kennwort des Benutzers in Form eines MD5-Werts (oder eines anderen ähnlichen Algorithmus) gespeichert. Wenn sich der Benutzer anmeldet, berechnet das System das vom Benutzer eingegebene Kennwort Der MD5-Wert wird dann mit dem im System gespeicherten MD5-Wert verglichen und das System „weiß“ nicht, wie das Passwort des Benutzers lautet.
MD5 ist theoretisch ein Einweg-Hash, und einige Hacker verwenden eine Methode namens „Dictionary Running“, um dieses Passwort zu knacken. Es gibt zwei Möglichkeiten, ein Wörterbuch zu erhalten. Eine davon ist eine tägliche Sammlung von Zeichenfolgentabellen, die als Passwörter verwendet werden, und die andere wird mithilfe einer Permutations- und Kombinationsmethode erstellt. Verwenden Sie zunächst das MD5-Programm, um die MD5-Werte dieser Wörterbuchelemente zu berechnen , und verwenden Sie dann die MD5-Werte des Ziels, um in diesem Wörterbuch zu suchen.
Selbst wenn davon ausgegangen wird, dass die maximale Länge des Passworts 8 beträgt und das Passwort nur aus Buchstaben und Zahlen bestehen kann, insgesamt 26 + 26 + 10 = 62 Zeichen, beträgt die Anzahl der durch Permutation gebildeten Elemente im Wörterbuch P (62,1)+P(62,2)....+P(62,8), das ist bereits eine astronomische Zahl. Zum Speichern dieses Wörterbuchs ist eine Festplattengruppe auf TB-Ebene erforderlich. Das heißt, das Zielkonto zu erhalten. Dies ist nur möglich, wenn das Passwort einen MD5-Wert hat.