Rekursive Befehlszeilen-MD5-Generator und -Überprüfer

5066
Synaps3

Ich möchte ein Batch-Skript schreiben, das MD5-Hashes eines gesamten Verzeichnisbaums generieren und überprüfen kann. Gibt es ein solches Programm für Windows?

Ich kann viele MD5-Programme finden, aber sie überprüfen oder wiederholen sich nicht.

2
Wenn Sie ein Befehlszeilenprogramm haben, das generiert, können Sie die Ausgabe davon nehmen und zur Überprüfung verwenden. Sie können den Befehl FOR / F verwenden, um das Laden von Dateien oder eines Verzeichnisses zu übernehmen. barlop vor 9 Jahren 1
Ich würde diese Frage wahrscheinlich in Unterfragen von A aufteilen. A) Wie schreibe ich ein Programm, das eine Datei aufnimmt (eine Datei könnte eine Datei pro Zeile enthalten) und eine zweite Spalte hinzufügt, ist dies eine Reihenfolge in den Zeilen 1-5 Die Reihenfolge könnte jeweils 1,2,3,4,5 lauten. Dann fragen Sie B) Wie schreibe ich ein Programm, das prüft, ob die zweite Spalte der Datei 1,2,3,4,5 liest? barlop vor 9 Jahren 0
Dann verwenden Sie dieses Prinzip, indem Sie md5 einführen. Verfügen Sie über eine Batchdatei, die Ihr md5-Programm für eine Dateiliste mit ihren vollständigen Pfaden verwendet und eine Spalte mit den md5-Hashes hinzufügt. Wenn Ihre Batchdatei eine andere Option hat, überprüfen Sie, ob die Datei eine Liste der von Ihnen angegebenen md5s enthält. Diese Datei könnte die Datei mit einer anderen Datei vergleichen. barlop vor 9 Jahren 0

3 Antworten auf die Frage

2
opexxx

Wenn Sie also mit der Befehlszeile vertraut sind

Dateiliste von http://malektips.com/filelist-output-directory-csv-spreadsheet-database.html

filelist /?  FileList V2.0  Prints a list of all files in a file system branch  FILELIST [/OPTION] [/FILTER pattern1;pattern2;...] Path [>list.csv]  /OWNERS Adds a coluimn with the file owners (slower) /NOHEADER Leaves out the column headers and only prints the raw data /ATTRIBUTES Includes the attributes that are set for each files /MD5 Adds a column wit the MD5 checksum of each file /AUTHORS Additionally extracts name of the author from MS Office documents /LASTSAVEDATE Additionally extracts the last save date from MS Office documents /FILTER Allows to specify one or more filters, separated with semicolons  For example: filelist /md5 C:\temp > list.csv  Add new files then run again filelist /md5 C:\temp > list2.csv  

oder md5deep von http://md5deep.sourceforge.net/start-md5deep.html

 md5deep.exe -r C:\temp >> md5hashes1.txt modify files and run again md5deep.exe -r C:\temp >> md5hashes2.txt 

Jetzt vergleiche list.csv mit list2.csv entweder in Excel oder mit einem beliebigen diff-Dienstprogramm (zB Windifff).

Ansonsten gehen Sie auf:

MD5summer von http://www.md5summer.org/

oder

hksfv von http://www.big-o-software.com/products/hksfv/

0
luckman212

Warum das Rad neu erfinden? Da Sie ausdrücklich gesagt haben, dass Sie nach einer Windows-App suchen, empfehle ich die HashCheck Shell Extension

Es kann alles, was Sie verlangen, und ist sehr ressourcenschonend.

-1 Er sagte die Kommandozeile. Wenn Sie eine GUI-Antwort vorschlagen möchten, machen Sie einen Kommentar, da er die von ihm gestellte Frage nicht beantwortet. Wenn er sich für die grafische Benutzeroberfläche entscheidet, sollte er einen neuen Kommentar abgeben, in dem Sie von Ihnen einen Kommentar abgeben. Sie sollten jedoch keine Antwort schreiben, die die von ihm gestellte Frage nicht berücksichtigt. Dies ist eine Datenbank mit Fragen und Antworten, die für andere Personen als nur für den Fragesteller nützlich sein soll. Daher ist es wichtig, dass die Antwort die Frage anspricht, auch wenn der Fragesteller etwas anderes bedeutet. Wenn der Fragesteller etwas anderes bedeutete, sollte er ein anderes q bearbeiten oder fragen. barlop vor 9 Jahren 1
0
Sodved

Ich glaube nicht, dass Sie das tun können. Ein MD5-Hash ist ein Hash aus einem Byte-Stream, aber eine Verzeichnisstruktur ist kein Byte-Stream. Ein Ordner ist ein Index von Dateien (dies sind Streams von Bytes) und anderen Ordnern. Technisch sind Ordner eigentlich nur Dateien, aber es gibt keine "vordefinierte" Reihenfolge für alle Dateien, daher glaube ich nicht, dass dies möglich ist.

Stattdessen denke ich, dass Sie das Verzeichnis zuerst in einen einzigen Bytestrom (dh Datei) codieren müssen. Dies wird durch eine Befehlszeilenversion von zip oder winRar erreicht. Wenn Geschwindigkeit ein Problem ist, gibt es Optionen, um tatsächlich keine Komprimierung durchzuführen. Es gibt wahrscheinlich auch einen Windows-Port von tar oder vielleicht sogar ein Windows-Äquivalent (CAB-Dateien?). Ich würde wahrscheinlich mit 7zip gehen und die comamndline verwenden 7z.exe(im Installer enthalten)

http://www.7-zip.org/

Ihr Skript könnte also eine einzelne Datei erstellen und dann den MD5-Hash davon erhalten. Und dann könnte Ihr Skript die einzelne Datei löschen. Nicht genau das, was Sie wollen, aber ich denke, es ist Ihre beste Option.

Es ist ein guter Punkt, dass md5 die Baumstruktur selbst nicht überprüft, aber Sie könnten eine Liste von Dateien mit vollständigen Pfaden und deren MD5 haben. Interessante Idee-zip, aber ich würde mich fragen, ob sie den Algorithmus je leicht ändern oder etwas anders komprimieren, dann würde sich der Hash ändern. Ich erinnere mich, dass pkzip zum Beispiel Optionen wie pkzip -ex hatte (-ex war extreme Kompression). barlop vor 9 Jahren 0