|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] md5 всех файлов в папке с подпапками |
|
CMD/BAT - [решено] md5 всех файлов в папке с подпапками
|
Пользователь Сообщения: 81 |
В общем есть флешка с кучей bios для разных материнских плат(знаю не лучший вариант), нужно два батника первый это который создаст md5 суммы всех файлов, а если уже есть то пропустит, в каталоге bios и второй это проверка этих сумм, результат не пройденных запишется в файл. Не когда не пробовал такое проделывать, вот и думаю может кто здесь такое уже делал?
|
|
Отправлено: 20:53, 15-06-2017 |
Забанен Сообщения: 793
|
Не самым лучшим вариантом в данном случае выступает скорее md5: достаточно много написано на тему коллизий оного, что даже сам его автор (вроде бы Ривест, если не ошибаюсь) рекомендовал пользоваться более продвинутыми алгоритмами. Но если оставить вопросы безопасности в стороне, получим другие грабли, а именно отсутствие штатных средств вичисления хэшей в Windows < 6.0; там придется либо использовать сторонние утилиты вроде sigcheck или openssl, либо взять C(#|\+\+)? компилятор и нарисовать чекер хэшей самостоятельно (ничего сложного в том нет). В случае в Vista и выше можно использовать certutil, позволяющий прочекать md[4|5], sha[1|256|384|512]. Так что для начала советую определиться с:
1) кругом ОС, на которых подобная задача должна решаться 2) действительно ли желаете использовать md5 В общем, думайте. |
Отправлено: 09:17, 16-06-2017 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 81
|
Профиль | Отправить PM | Цитировать greg zakharov, использовать буду преимущественно на win 7 на 10, md5 не обязательна, главная задача проверка целостности файлов bios, чтобы не прошить случайно битый, т.к. на флешке очень большой шанс, что файлы повредятся. Думаю использовать fciv.exe у нее вроде как есть функция для создания хеш сумм множества файлов и записи сумм в файл для последующей сверки.
|
Отправлено: 16:06, 17-06-2017 | #3 |
Пользователь Сообщения: 81
|
Профиль | Отправить PM | Цитировать Пока накидал вот такой черновик, вроде все работает.
Запуск fciv
@Echo off :m0 CLS Echo. Echo Выберите команду: Echo. Echo 1 - Создать хеш файлов Echo 2 - Проверить хеш файлов Echo 0 - Выход echo. Set /p choice="Ваш выбор: " if not defined choice goto m0 if "%choice%"=="1" goto m1 if "%choice%"=="2" goto m2 if "%choice%"=="0" goto end Echo. goto m0 :m1 CLS Echo Удаление старого хеш файла del /F /S /Q /A hashes.xml Echo Создание хеша... Подождите... fciv -add ..\ -r -exc exceptions.txt -xml hashes.xml > log.txt Echo Открытие лог файла log.txt Exit :m2 CLS Echo Проверка хеша файлов... Ждите... fciv -v -xml hashes.xml > log.txt Echo Готово. Открытие лог файла. log.txt Exit Echo. Echo. Echo. goto m0 :end Exit Результат сверки хеша лог
//
// File Checksum Integrity Verifier version 2.05. // Could not create the registry key. Starting checksums verification : 06/17/2017 at 17h17'16 List of modified files: ----------------------- ..\fciv\hashes.xml Hash is : 178173a8b825058e2edd6d5d6137f280 It should be : 67bf8a87d456112e07d3ec642c2d3c28 End Verification : 06/17/2017 at 17h21'06 |
Отправлено: 17:23, 17-06-2017 | #4 |
Забанен Сообщения: 793
|
Voron-orel, если Win >= 7, то лучше все же остановиться на certutil: во-первых, вещь штатная, во-вторых, fciv - шлак, какой еще нужно поискать. В первом случае пример решения может выглядеть так:
@echo off setlocal call:sha256sum source.bin sum call:verify source.bin %sum% endlocal exit /b :sha256sum for /f "delims=" %%i in ( 'certutil -hashfile "%~1" SHA256^ ^| findstr /virc:"certutil"' ) do set "raw=%%i" set "%2=%raw: =%" exit /b :verify for /f "tokens=1" %%i in ( 'findstr /irc:"\*%~1$" sig.txt' ) do ( if /i "%%i" equ "%2" ( echo:SUCCESS: %1 has not been corrupt. ) ) exit /b d4d8cc319e85c8d523aa1ec6fa7f069673b8301e09bbc792b03dada89ce25f03 *source.bin e817cc319e85c8f523aa1ec6fa7f06967238301e09bbc792b03dada89ce25f03 *source1.bin ... Что касается сторонних утилит. Есть порты UNIX'овых утилит под винду для сверки хэшей, но в данном случае, наверное, лучше взять gpg: подписать бинарники, а после чекать подписи. |
|
Отправлено: 17:34, 17-06-2017 | #5 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Объединение всех файлов в папке | AlexVong | Скриптовые языки администрирования Windows | 5 | 24-06-2015 23:34 | |
текстовый файл с именами всех файлов в папке | socap | AutoIt | 19 | 19-02-2012 16:42 | |
CMD/BAT - Закрытие всех открытых файлов в одной расшаренной папке | sea707 | Скриптовые языки администрирования Windows | 0 | 10-02-2012 02:20 | |
[решено] Импорт всех reg-файлов в папке? | s127d | Автоматическая установка Windows 2000/XP/2003 | 2 | 24-05-2008 05:11 | |
php как вывести список всех файлов в папке | Вебмастеру | 6 | 12-02-2005 17:33 |
|