Можно ли использовать OpenSSL для генерации md5 или хеша sha на каталоге файлов?

Я интересуюсь хранением индикатора файла / целостность каталога между двумя заархивированными копиями каталогов. Это - приблизительно 1 ТБ данных, хранивших рекурсивно на жестких дисках. Существует ли способ использовать OpenSSL для генерации единственного хеша для всех файлов, которые могут использоваться в качестве сравнения между двумя копиями данных, или позже проверить, что данные не изменились?

1
задан 19.11.2009, 20:38

3 ответа

Вы могли рекурсивно генерировать все хеши, связать хеши в единственный файл, затем генерировать хеш того файла.

3
ответ дан 12.12.2019, 07:45

Вы не можете сделать кумулятивного хеша их всех для создания единственного хеша, но можно сжать их, сначала затем вычисляют хеш:

$tar -czpf archive1.tar.gz folder1/
$tar -czpf archive2.tar.gz folder2/
$openssl md5 archive1.tar.gz archive2.tar.gz

рекурсивно хешировать каждый файл:

$find . -type f -exec openssl md5 {} +
3
ответ дан 12.12.2019, 07:45

Выполнение суммы md5 на tar никогда не работало бы, если все метаданные (дата создания, и т.д.) не были идентичны также, потому что хранилища tar что как часть его архива.

Я, вероятно, сделал бы md5 сумму содержания всех файлов:

find folder1 -type f | sort | tr '\n' '\0' | xargs -0 cat | openssl md5
find folder2 -type f | sort | tr '\n' '\0' | xargs -0 cat | openssl md5
2
ответ дан 12.12.2019, 07:45

Теги

Похожие вопросы