Посчитать контрольную сумму папки

AE169

Не по отдельности, а всей папки (т.е. на выходе 1 контрольная сумма). md5sum от md5sum не подходит :) Windows

IvladV71

Не по отдельности, а всей папки (т.е. на выходе 1 контрольная сумма). md5sum от md5sum не подходит :) Windows
http://gnuwin32.sourceforge.net/packages/gtar.htm + md5

Andbar

md5sum от md5sum
считаешь рекурсивно мд5-сумму всех файлов, сохраняешь в файл и считаешь мд5-сумму этого файла. Ну или совет 'а, но это надо ставить дополнительный софт.

nas1234

а зачем?

kiracher

md5sum от md5sum не подходит
как насчет чего то типа (под виндой наверно можно аналогично cp задейстовать)
cat * | md5sum -
UPD - для секурности очевидно не годится: добавив еще один файл в директорию можно подогнать под требуемый md5sum

vall

надо ещё имена отсортировать

Andbar

надо ещё имена отсортировать
угу... в общем, имена файлов под виндой надо получать командой
dir /a-d /b /on

Andbar

в общем как-то так:
md5folder.cmd
@echo off
setlocal
set tmpfilename=md5~%RANDOM%
set tmpfile="%temp%\%tmpfilename%"
pushd %1
echo. >%tmpfile%
call :hashdir . .
popd
set md5dir=%~f1
pushd %temp%
for /f "tokens=1" %%i in ('md5sum %tmpfilename%') do echo %%i *%md5dir%
del %tmpfilename%
popd
endlocal
goto :eof



:hashdir
echo %~2>> %tmpfile%
pushd %1
for /f "tokens=*" %%i in ('dir /a-d /b /on') do md5sum "%%i" >> %tmpfile%
for /f "tokens=*" %%j in ('dir /ad /b /on') do call :hashdir "%%j" "%~2\%%j"
popd
goto :eof

Запускать так: md5folder "path\to\folder".
Единственная проблема - файлы с символами из левых кодировок.

hiper-hoper

UPD - для секурности очевидно не годится: добавив еще один файл в директорию можно подогнать под требуемый md5sum
md5 вроде как сразу предполагает, что с секьюрностью не особо заморачиваются.

dickofan

TC

nas1234

TC
мой тс говорит что для каталогов нельзя.
а автор так и не сказал, зачем ему это нужно то?

dangerr

UPD - для секурности очевидно не годится: добавив еще один файл в директорию можно подогнать под требуемый md5sum
Как это сделать?

Andbar

вроде-бы как кто-то показал, как можно сформировать набор байт, которые выдадут нужную md5-сумму. Вот только с моим cmd-шником такой фокус скорее всего не пройдёт, т.к. конечный мд5 формируется от текстовых данных в определённом формате. А подделка данных с нужной мд5-суммой требует возможности добавить к данным кусок из произвольных байт

tokuchu

cat * | md5sum -
UPD - для секурности очевидно не годится: добавив еще один файл в директорию можно подогнать под требуемый md5sum
Не годится по другой причине. Т.к. любая другая нарезка полученного cat на байты тоже выдаст верную сумму, плюс можно поменять имена файлов.

dickofan


7.5
Оставить комментарий
Имя или ник:
Комментарий: