Який найкращий спосіб обчислити контрольну суму для файлу на моїй машині?


82

Я працюю на машині Windows і хочу запустити контрольну суму на розподілі MySQL, який я щойно отримав. Схоже, є товари для завантаження, непідтримуваний інструмент Microsoft та, можливо, інші варіанти. Мені цікаво, чи існує консенсус щодо найкращого інструменту для використання. Це може бути справді простим запитанням, я просто ніколи раніше не запускав контрольну суму.


2
Також обговорювалося на SuperUser: superuser.com/questions/245775/…

Відповіді:


16

Будь-який MD5 створить хорошу контрольну суму для перевірки файлу. Будь-який із файлів, перелічених внизу цієї сторінки, буде працювати нормально. http://en.wikipedia.org/wiki/Md5sum


6
Ця відповідь вже не є доброю порадою. MD5 сьогодні вкрай небезпечний . Використання MD5 для перевірки завантажених файлів не є безпечним.
antiduh

22
@antiduh Якщо ви отримуєте хеш з того самого місця, звідки ви його завантажуєте, ваш аргумент спірний. Ви обмежені хешем, наданим веб-сайтом.
JJ

7
Зазначимо, що користувач просто хоче перевірити, чи не пошкоджений завантажений файл. Якщо ви заглянете на https://en.wikipedia.org/wiki/MD5#Security, ви зустрінете це ключове речення у початковому абзаці: "Хоча спочатку MD5 був розроблений для використання як криптографічна хеш-функція, він має було виявлено, що він страждає від значних вразливих місць. Він все ще може використовуватися як контрольна сума для перевірки цілісності даних, але лише проти ненавмисної корупції ".
Коста Тенедіос

2
@JJ Багато офіційних веб-сайтів змушують завантажувати справжній двійковий файл з іншого домену, тому аргумент є дійсним. Ви можете завантажити модифікований VLC зі шкідливого дзеркала через офіційний сайт, який буде виявлено контрольною сумою.
Гей,

2
@antiduh Я запитав не тому, що мені лінь шукати, а тому, що RTFM ніколи не є відповідною "відповіддю" на Stackoverflow (саме це мається на увазі у вашій відповіді).
java-addict301

237

CertUtil є попередньо встановленої ОС Windows утиліта, яка може бути використана для створення хеш - сум:

CertUtil -hashfile pathToFileToCheck [HashAlgorithm]

HashAlgorithm вибір: MD2 MD4 MD5 SHA1 SHA256 SHA384 SHA512

Так, наприклад, наступне генерує контрольну суму MD5 для файлу C:\TEMP\MyDataFile.img:

CertUtil -hashfile C:\TEMP\MyDataFile.img MD5

Щоб отримати вихід, схожий на системи * Nix, ви можете додати трохи магії PS:

$(CertUtil -hashfile C:\TEMP\MyDataFile.img MD5)[1] -replace " ",""

1
Це набагато простіший вибір, ніж FCIV, враховуючи те, що він попередньо встановлений.
CJBS

1
Примітка: це не встановлюється попередньо на Win XP, але враховуючи, що ця ОС застаріла, це не повинно бути проблемою.
CJBS

2
@Laisvis - з вашим поясненням, я перейшов від 0 до готового приблизно за 2 хвилини. Я зайшов на цю сторінку, шукаючи, як це зробити. Ваша відповідь була простою та досконалою.
Айсберг

2
+1 за рекомендацію попередньо встановленої версії. Який кращий спосіб забезпечити безпечне програмне забезпечення для перевірки безпеки та збереження додаткових кроків пошуку, завантаження, встановлення та перевірки.
Зак Яннсен,

1
Чи може хтось сказати мені, як перевірити контрольну суму файлу для використання генерованого certUtil гешу? командний рядок. Чи буде це просто використовувати той самий командний рядок для генерування хешу у файлі (після отримання файлу на цільовій машині)?
rvpals

25

Я особисто використовую Cygwin , котрий кладе весь smörgåsbord утиліт Linux на кінчик мого пальця - є md5sumі всі криптографічні дайджести, що підтримуються OpenSSL . Крім того, ви можете також використовувати дистрибутив OpenSSL для Windows ("легка" версія - це лише програма встановлення розміром 1 МБ).


3
Для простої перевірки контрольної суми Cygwin видається трохи важким. Тим паче, що для перевірки MD5 існує виконуваний файл розміром 5 КБ
Нік Берарді,

3
Це може бути важким, але це вірна відповідь, особливо коли йдеться про програму Unixy (MySQL).
Адам Хауз,

3
Для тих з нас, хто вважає Cygwin важливим інструментом, це ідеальна відповідь.
Zenexer

7
Варто зазначити, що md5sum також поставляється з git bash (mingw)
Old Badman Grey

10

У Windows: ви можете використовувати утиліту FCIV: http://support.microsoft.com/kb/841290

У Unix / Linux: ви можете використовувати md5sum: http://linux.about.com/library/cmd/blcmdl1_md5sum.htm


2
FCIV не встановлено попередньо. CertUtil є (на нових Windows , ОС) - Див відповідь нижче: stackoverflow.com/a/28922976/3063884
CJBS

Отже, надається місце завантаження.
sandyiit

6

Вкладки контрольної суми: http://code.kliu.org/hashcheck/

Це вже деякий час для мене чудово працює на вікнах. Це дозволяє легко копіювати та вставляти контрольні суми. У ньому є поле для введення / вставки контрольних сум із веб-сторінок і досить добре показує збіги чи не збіги.


2
Ця зручна маленька утиліта тут досить занижена. По-перше, я не маю ніякого відношення до автора (авторів) --- я просто думаю, що це чудова корисність! Це дозволяє вам створити хеш-файл на ваш вибір у контекстному меню Провідника Windows для одного файлу або групи файлів. Пізніше ви можете двічі клацнути цей хеш-файл, щоб автоматично запустити перевірку хешу цих файлів. Я часто використовую це для створення хешу для великих файлів, які хочу скопіювати, потім скопіюю з ним хеш-файл, і в пункті призначення двічі клацніть, щоб переконатися, що вони збереглися цілими.
Майкл Соренс

1
Відмінне рішення, але посилання застаріле. Найбезпечніше місце для отримання цього програмного забезпечення зараз - github.com/gurnec/HashCheck
asachet

5

На MySQL.com MD5 перелічені поряд із кожним файлом, який можна завантажити. Наприклад, MySQL "Windows Essentials" 5.1 - це 528c89c37b3a6f0bd34480000a56c372 .

Ви можете завантажити md5 (md5.exe), інструмент командного рядка, який буде обчислювати MD5 будь-якого файлу, який у вас є локально. MD5 подібна до будь-якої іншої криптографічної хеш-функції , а це означає, що заданий масив байтів завжди буде виробляти один і той же хеш. Це означає, що якщо ваш завантажений ZIP-файл MySQL (або що завгодно) має той самий MD5, який вони розміщують на своєму сайті, у вас точно такий же файл.


3

Коли я працював з Windows, я знайшов зручний незалежний інструмент HashTab. Він показує контрольні суми MD5, SHA-1 на одній із вкладк властивостей файлу. http://implbits.com/products/hashtab/


3

7-Zip можна використовувати для генерування хеш-файлів, папок файлів та дерев папок файлів. 7-Zip - це невеликий розмір та дуже корисна програма стиснення. http://7-zip.org/


Хоча це правда, що 7-zip забезпечує хеші для всіх перелічених вище елементів, він не має можливості просто скопіювати та вставити свої результати безпосередньо. CertUtil, оскільки це програма CMD, надає функцію копіювання та вставлення.
Jonathin

Також можна використовувати 7z.exe через CMD, наприклад, 7z.exe h -scrcSHA256 -- /path/to/your/file.txtстворює хеш sha256.
Елпі,


2

Просто для додавання ще однієї опції для користувачів Windows Get-FileHashможна використовувати командлет PowerShell ( https://technet.microsoft.com/en-us/library/dn520872.aspx ).

Приклад використання: Get-FileHash MyImage.iso -Algorithm MD5

Якщо все, що вам потрібно, це лише сирий хеш: (Get-FileHash MyImage.iso -Algorithm MD5).Hash


2

Для обчислення md5 усіх файлів у поточному каталозі у Windows 7

for %i in (*) DO CertUtil -hashfile %i MD5


1

Найкраща утиліта для Windows - HashCheck, яка зараз знаходиться на GitHub. https://github.com/gurnec/HashCheck/releases/tag/v2.4.0

Встановіть HashCheck. Тепер клацніть правою кнопкою миші на файлі -> Створити файл підтвердження. Він створить файл file.extension.md5 із кодом MD5.

Любіть це.


0

Зауважте, що наведені вище рішення не повідомлять вам, чи правильна ваша установка, лише якщо ваш install.exe правильний (ви можете довірити йому правильну установку)

Вам знадобляться суми MD5 для кожного файлу / папки, щоб перевірити, чи не було переплутано встановлений код після завершення встановлення.

WinMerg корисно порівняти дві інсталяції (можливо, на двох різних машинах), щоб побачити, чи була одна змінена або чому вона зламана.


0

безумовно, certutil - найкращий підхід, але є ймовірність потрапити на машину Windows XP / 2003 без команди certutil. Можна використовувати команду makecab, яка має власний алгоритм хешування - тут fileinf.bat виведе деяку інформацію про файл, включаючи контрольна сума.





0

У HPUX (hp UNIX)

Будь ласка, встановіть пакет md5sum на вашому комп'ютері UNIX, наприклад, якщо є файл, який називається a.txt

shell > md5sum a.txt

-4

Просто використовуйте win32 Checksum api. MD5 є рідною для Win32.


2
Маєте приклад API Win32, який є достатньо малим для відповіді SO та підходить для автора запиту?
Sqeaky
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.