Рекурсивный генератор и верификатор md5 из командной строки

4996
Synaps3

Я хочу написать пакетный скрипт, который может генерировать и проверять md5-хэши всего дерева каталогов. Есть ли такая программа для Windows?

Я могу найти много программ md5, но они не проверяются и не повторяются.

2
хорошо, если у вас есть программа командной строки, которая генерирует данные, вы можете взять ее и использовать для проверки. И вы можете использовать команду FOR / F, чтобы применить ее к загрузке файлов или каталога. barlop 9 лет назад 1
я, вероятно, разбил бы этот вопрос на подвопросы А) Как мне написать программу, которая берет файл (может быть файл, перечисляющий файлы по одному на строку) и добавляет к нему второй столбец - некоторая последовательность в строках 1-5 соответственно, последовательность могла бы быть 1,2,3,4,5. Затем спросите Б) Как мне написать программу, которая проверяет, что второй столбец файла читает 1,2,3,4,5? barlop 9 лет назад 0
Тогда используйте этот принцип ... вводя в него md5. Создайте пакетный файл, который использует вашу программу md5 в списке файлов с их полными путями, и добавьте в него столбец с хэшами md5. А затем установите пакетный файл с другим параметром, убедитесь, что в файле есть список указанных вами md5, который может проверять этот файл на предмет другого файла. barlop 9 лет назад 0

3 ответа на вопрос

2
opexxx

так что если вы знакомы с командной строкой

FileList от 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  

или md5deep от 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 

теперь просто сравните list.csv с list2.csv в Excel или с любой утилитой сравнения (например, Windifff)

в противном случае пойти на:

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

или же

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

0
luckman212

Why reinvent the wheel? Since you specifically said you were looking for a Windows app, I recommend HashCheck Shell Extension

It can do all that you ask and is very light on resources.

-1 Он сказал командную строку. Если вы хотите предложить ответ с графическим интерфейсом, сделайте это комментарием, потому что он не отвечает на вопрос, который он задал. Если он выбирает GUI, он должен сделать новый комментарий, предложенный вами, когда вы делаете комментарий, но вы не должны писать ответ, который не отвечает на вопрос, который он задал. Это база данных вопросов и ответов, предназначенная для других людей, а не только для тех, кто задает вопросы. Поэтому важно, чтобы ответ касался вопроса, даже если спрашивающий имел в виду что-то другое. Если спрашивающий имел в виду что-то еще, он должен отредактировать или задать другой вопрос. barlop 9 лет назад 1
0
Sodved

I don't think you can do this sorry. An md5 hash is a hash of a a stream of bytes, but a directory tree is not a stream of bytes. A folder is an index of files (which are streams of bytes) and other folders. Now technically folders are just files themselves, but there is no "predifined" ordering for all the files, so I do no think it is possible.

So instead I think you first need to encode the directory into a single stream of bytes (i.e. file). A command line version of zip or winRar will accomplish this. If speed is an issue, there are options to not actually do any compression. There's probably a windows port of tar as well, or maybe even a windows native equivalent (.cab files?). I'd probably go with 7zip and use the comamndline 7z.exe (included in installer)

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

So your script could create the single file, and then get the MD5 hash of that. And then your script could delete the single file. Not exactly what you want, but I think its your best option.

Хорошо, что md5 не будет проверять саму древовидную структуру, но у вас может быть список файлов с полными путями, и их md5 имеет. Интересная идея-zip, но мне было бы интересно, если бы они когда-нибудь меняли алгоритм немного или сжимали его немного по-другому, тогда хэш изменился бы. Я помню, что в pkzip, например, были такие параметры, как pkzip -ex (-ex было очень сжатым). barlop 9 лет назад 0