6

Время от времени я делаю полный снимок моих дисков с помощью команды, подобной следующей.

> for %i in (%drives_hd%) do @dir %i:\/s/a/o>>File_List.txt

Это дает подробную информацию (путь, имя файла, дату и размер) для всех файлов в моей системе и отлично подходит для хранения вкладок в файлах, не занимая слишком много места (~ 50 МБ для ~ 500 000 файлов). Проблема в том, что он не содержит хешей.

Очевидно, что существуют инструменты для хеширования файлов, но они не дают других подробностей, и нет практического способа отдельно делать хэши (ы) и комбинировать их / их со списками каталогов.

Я ищу инструмент, который может создать текстовый файл с полными деталями, например, с помощью команды dir , но также включать хэши файлов (по крайней мере, CRC (32), MD5 и SHA1). Он также должен быть хорошо написан, чтобы он считывал каждый файл только один раз, независимо от того, сколько хешей вы попросили его сделать (т.е. не читайте весь файл один раз для каждого типа хеша).

Я бы предпочел программу CLI, но с графическим интерфейсом все в порядке, если ее можно запустить из скрипта.

Я даже открыт для (Windows-портов) Linux-инструментов.

Я ничего не смог найти в Google (хотя я удивлен, что такой полезный инструмент встречается не так часто), и сам решил написать такой инструмент, но надеюсь, что что-то уже существует.


Чтобы прояснить, что я ищу, просмотрите приведенные ниже примеры выходных данных.

Вывод dir умолчанию:

 Volume in drive C is C-WINDOWSXP
 Volume Serial Number is 1234-5678

 Directory of C:\

2007.07.05  04:05p    <DIR>          Documents and Settings
2011.05.04  07:38p    <DIR>          Program Files
2010.04.02  11:35p    <DIR>          WINDOWS
2011.10.09  10:45p               454 BOOT.INI
2002.08.28  10:08p            47,580 NTDETECT.COM
2002.08.29  02:05a           233,632 NTLDR
               3 File(s)      281,666 bytes

 Directory of C:\Documents and Settings

2003.11.12  03:08p    <DIR>          .
2003.11.12  03:08p    <DIR>          ..
2007.07.05  10:36p    <DIR>          Administrator
2007.07.05  04:21p    <DIR>          All Users
               0 File(s)              0 bytes

 Directory of C:\Documents and Settings\All Users

2003.11.12  03:08p    <DIR>          .
2003.11.12  03:08p    <DIR>          ..
2007.07.05  04:23p    <DIR>          Application Data
2011.06.23  03:23p    <DIR>          Documents
2011.01.09  12:56p           262,144 ntuser.dat
               1 File(s)      262,144 bytes

...

Желаемый результат:

 Volume in drive C is C-WINDOWSXP
 Volume Serial Number is 1234-5678

 Directory of C:\

2007.07.05  04:05p    <DIR>          Documents and Settings
2011.05.04  07:38p    <DIR>          Program Files
2010.04.02  11:35p    <DIR>          WINDOWS
2011.10.09  10:45p               454 BOOT.INI                 d1183b26 fad47d7d255e1189dbef3003fba96868 39c9bbe3edad58a5bd091ea1db8f9b6cf03f9566
2002.08.28  10:08p            47,580 NTDETECT.COM             a709deed 28a3ac957be5d239a3dd4f3d4cdbf3b8 f5625a158d92478c814df3b33a9ad5fcd5f8a956
2002.08.29  02:05a           233,632 NTLDR                    0d7e47bd 9896e483e211b8cd1fa7bb32572f02ec c57426135d0419985681a674149c88e652c8ec63
               3 File(s)      281,666 bytes
               3 Dir(s)

 Directory of C:\Documents and Settings

2003.11.12  03:08p    <DIR>          .
2003.11.12  03:08p    <DIR>          ..
2007.07.05  10:36p    <DIR>          Administrator
2007.07.05  04:21p    <DIR>          All Users
               0 File(s)              0 bytes
               2 Dir(s)

 Directory of C:\Documents and Settings\All Users

2003.11.12  03:08p    <DIR>          .
2003.11.12  03:08p    <DIR>          ..
2007.07.05  04:23p    <DIR>          Application Data
2011.06.23  03:23p    <DIR>          Documents
2011.01.09  12:56p           262,144 ntuser.dat               fc3d370a b3ea06755f614e2c18fc1de875b60126 8264549330d9dbef494264227be9fadffe653556
               1 File(s)      262,144 bytes
               2 Dir(s)

3 ответа3

2

WinHasher:

WinHasher - это бесплатный криптографический генератор хешей или дайджестов с открытым исходным кодом, написанный на C # с использованием Microsoft .NET 2.0 Framework. Его можно использовать для проверки целостности загрузки файлов, сравнения двух или более файлов на предмет изменений и в некоторой степени для создания надежных уникальных паролей.

Командный хэш-генератор:

cmdhashgen - это утилита командной строки, которую можно использовать для генерации различных хешей для заданной строки или файла.

Поддерживаются хэши CRC32, MD5, SHA-1, SHA-256, SHA-384 и SHA-512.

WinHasher имеет утилиты командной строки, в том числе "Hash", которые можно связать в пакетный файл или скрипт. Похоже, более стабильный из двух пакетов.

Usage: hash [-md5|-sha1|-sha256|-sha384|-sha512|-ripemd160|-whirlpool|
       -tiger] [-base64|-hexcaps|-bubbab] filename1 [filename2 ...]

WinHasher is a command-line cryptographic hash generator for files.  It
runs in one of two modes:  single file hashing and multi-file comparison.

In single file mode, WinHasher computes the cryptographic hash of the
given file and prints it to the screen.  With no command-line switches,
it computes the SHA-1 hash and displays it in hexadecimal format.  Various
switches allow you to change to other hashing algorithms, such as MD5,
the SHA family, RIPEMD-160, Whirlpool, and Tiger.  The "-base64" switch
causes WinHasher to output hashes in MIME Base64 (RFC 2045) format rather
than hexadecimal, "-hexcaps" outputs hexadecimal with all capital letters,
and "-bubbab" uses Bubble Babble encoding.
1

Одной из возможностей является NirSoft HashMyFiles.

Это включает в себя графический интерфейс, который может искать в папке (и подпапках) файлы и вычислять несколько хешей всех найденных файлов. Отображаемый вывод можно скопировать в буфер обмена в виде простого списка элементов (один файл на строку, пробелы, разделяющие поля) или в виде отчета HTML.

Программа также может быть вызвана из командной строки с различными вариантами того, что хэшировать и как форматировать результаты. Доступно несколько текстовых форматов, включая CSV, два html-формата и xml-форматы.

К сожалению, я не вижу параметров командной строки для сортировки результатов - порядок, по-видимому, соответствует порядку, в котором были найдены файлы во время обхода, который иногда может случайно выглядеть так, будто он отсортирован по полному пути, но вы не можете Предположим, что. Однако вы можете выполнить сортировку, щелкнув заголовок столбца в графическом интерфейсе в обычном режиме, и это, похоже, повлияет на то, что вы получите, если затем скопировать в буфер обмена.

Для использования в командной строке, я думаю, вы всегда можете использовать отдельную утилиту или скрипт для выполнения любой необходимой вам сортировки. С опцией вывода XML это может быть даже оправданием для изучения некоторого базового XSLT.

В любом случае, это ближе к dir /s/b чем к dir /s , но это может решить вашу проблему (если она у вас еще есть).

1

http://sourceforge.net/projects/quickhash

Имеет все перечисленные выше функции (см. Вкладку «Рекурсивный хэш»), а также кроссплатформенный и открытый исходный код, и в настоящее время поддерживается, версия 2.1 выпущена несколько недель назад. Использует MD5, SHA1, SHA256 или SHA512.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .