Есть ли в Windows 7 встроенная утилита для проверки контрольных сумм?
Есть ли в Windows 7 встроенная утилита для проверки контрольных сумм / хэшей?
31 ответ
Есть встроенная утилита, как указано в этом другом ответе.
Однако вы можете использовать это бесплатное приложение под названием HashTab, которое аккуратно интегрируется с Windows Explorer, регистрируя... ну, вкладку в диалоге свойств файлов. Это довольно мило.
CertUtil - это предустановленная утилита Windows, которую можно использовать для генерации контрольных сумм хеша:
certUtil -hashfile pathToFileToCheck [HashAlgorithm]
Выбор хеш-алгоритма: MD2 MD4 MD5 SHA1 SHA256 SHA384 SHA512
Так, например, следующее генерирует контрольную сумму MD5 для файла C:\TEMP\MyDataFile.img
:
CertUtil -hashfile C:\TEMP\MyDataFile.img MD5
Для получения результатов, аналогичных * системам Nix, вы можете добавить магию PowerShell:
$(CertUtil -hashfile C:\TEMP\MyDataFile.img MD5)[1] -replace " ",""
Я использую HashCheck ( последняя версия), которая интегрируется как страница свойств для файлов и включает контекстное меню для сравнения с файлами проверки хешей (SFV).
Это бесплатно, и источник доступен.
PowerShell версии 4 и выше включает в себя командлет Get-FileHash.
powershell get-filehash -algorithm md5 <file_to_check>
Используйте doskey, чтобы создать постоянный псевдоним, который легче запомнить.
doskey sha1sum=powershell get-filehash -algorithm sha1 "$1"
doskey md5sum=powershell get-filehash -algorithm md5 "$1"
Существует утилита FCIV от Microsoft, верификатор целостности контрольной суммы файла Microsoft ( ссылка на скачивание).
Средство проверки целостности контрольной суммы файлов Microsoft - это неподдерживаемая утилита командной строки, которая вычисляет криптографические хеши MD5 или SHA1 для файлов.
Он не показывает Windows 7 в системных требованиях, но я только использовал его в Windows 8, и он работал.
Вот тот, который я использовал ранее, который прекрасно интегрируется с диалоговым окном "Свойства" в Explorer: Летние свойства. Это открытый исходный код, а также доступна версия для x64.
Мне также нравится FileAlyzer от Safer Networking, который также предоставляет дополнительные функции. Но только для контрольных сумм, Летние Свойства легки и делают работу.
Я добавляю это здесь только потому, что я не видел полностью работающих примеров PowerShell, готовых для копирования-вставки:
C:\> powershell "Get-FileHash %systemroot%\system32\csrss.exe"
Algorithm Hash
--------- ----
SHA256 CB41E9D0E8107AA9337DBD1C56F22461131AD0952A2472B4477E2649D16E...
C:\> powershell -c "(Get-FileHash -a MD5 '%systemroot%\system32\csrss.exe').Hash"
B2D3F07F5E8A13AF988A8B3C0A800880
C:\> CertUtil -hashfile "%systemroot%\system32\csrss.exe" MD5 | findstr -v file
b2 d3 f0 7f 5e 8a 13 af 98 8a 8b 3c 0a 80 08 80
C:\>
HashMyFiles от Nirsoft - это небольшая утилита, которая позволяет вычислять хэши MD5 и SHA1 для одного или нескольких файлов в вашей системе. Вы можете легко скопировать список хэшей MD5/SHA1 в буфер обмена или сохранить их в файл text/html/xml.
HashMyFiles также можно запустить из контекстного меню проводника Windows и отображать хэши MD5/SHA1 выбранного файла или папки.
HashMyFiles является бесплатным и портативным.
Я нашел этот скрипт PowerShell:
param([switch]$csv, [switch]$recurse)
[Reflection.Assembly]::LoadWithPartialName("System.Security") | out-null
$sha1 = new-Object System.Security.Cryptography.SHA1Managed
$pathLength = (get-location).Path.Length + 1
$args | %{
if ($recurse) {
$files = get-childitem -recurse -include $_
}
else {
$files = get-childitem -include $_
}
if ($files.Count -gt 0) {
$files | %{
$filename = $_.FullName
$filenameDisplay = $filename.Substring($pathLength)
if ($csv) {
write-host -NoNewLine ($filenameDisplay + ",")
} else {
write-host $filenameDisplay
}
$file = [System.IO.File]::Open($filename, "open", "read")
$sha1.ComputeHash($file) | %{
write-host -NoNewLine $_.ToString("x2")
}
$file.Dispose()
write-host
if ($csv -eq $false) {
write-host
}
}
}
}
Источник: Расчет SHA1 в PowerShell
Он использует.NET, который я предполагаю, что вы установили
Пакетный файл, основанный на комментарии pbarney к ответу с наибольшим количеством голосов: Это копирует MD5-хэш любого файла, перетаскиваемого в пакетный файл, в буфер обмена:
@ECHO OFF
FOR /f "tokens=*" %%i IN ('@certutil -hashfile %1 MD5 ^| find /v "hash of file" ^| find /v "CertUtil"') DO SET r=%%i
SET r=%r: =%
ECHO %r% | clip
Чтобы сделать его элементом контекстного меню:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\Get MD5]
@="Copy MD5 to Clipboard"
[HKEY_CLASSES_ROOT\*\shell\Get MD5\command]
@="\"C:\\<PATH TO BAT FILE>\\getMD5.bat\" \"%1\""
Проверка целостности контрольной суммы файла Microsoft. Он может вычислять значения хеш - функции MD5 и SHA-1.
Загрузите, распакуйте файлы, затем откройте командную строку, перейдите к извлеченному пути и введите следующую команду:
fciv -md5 filepath\filename.extension
Например:
fciv -md5 d:\programs\setup.exe
К сожалению, не то, что я знаю, но пакет Microsoft Sysinternals включает в себя хороший инструмент под названием sigcheck.
Контекстное меню MD5 делает именно это. Он добавляет опцию MD5 в контекстное меню файлов:
Контекстное меню MD5 - это бесплатное расширение оболочки для Windows, которое отображает хэш-сумму MD5 выбранного файла.
В нем говорится, что он совместим с Windows 95, 98, ME, NT, 2000 и XP, хотя он отлично работает для меня в Windows 7. Это небольшая загрузка (238 КБ) и включает в себя все, что вам нужно.
QuickHash поддерживает SHA-256 и SHA-512. Мне понадобилась поддержка SHA-256 для проверки контрольной суммы библиотек JavaScript из белого списка для включения в дополнение Firefox.
Cygwin содержит md5sum.exe
Утилита, которая должна делать то, что вы хотите.
Это всего лишь сценарий оболочки cmd, который использует ответ tedr2, но удаляет лишние выходные строки и пробелы:
:: hash.cmd : Get a hash of a file
:: p1: file to be hashed
:: p2: Hash algorithm in UPPERCASE
:: p3: Output file
@setlocal
@for /f "tokens=*" %%a in (
'@certutil -hashfile %1 %2 ^|find /v "hash of file" ^|find /v "CertUtil"'
) do @(
@set str=%%a
)
@set str=%str: =%
@echo %str%
@endlocal
Вывод может быть перенаправлен в файл, если требуется:
@echo %str% > %3
например
sys> \dev\cmd\hash.cmd MyApp.dll SHA1
8ae6ac1e90ccee52cee5c8bf5c2445d6a92c0d4f
Правильный ответ, конечно, да, CertUtil (см . Ответ tedr2).
Но я добавлю бесплатный File Checksum Verifier от Penteract, который, я думаю, является одной из самых удобных программ. (Отказ от ответственности: я связан с Penteract.)
Некоторые из его преимуществ:
- Сравнивает рассчитанные и ожидаемые хэши для вас.
- Минималистичный - нет элементов в контекстных меню файлов, нет дополнительной вкладки в свойствах файлов.
Чтобы проверить целостность этой программы (против атак "человек посередине") - она загружается через безопасное соединение.
Плюс: бесплатный, офлайн (чтобы вам не приходилось загружать файлы), удобный (перетащите файл и получите результат), запускается из меню "Пуск" (не нужно искать загруженный исполняемый файл, когда вы хотите использовать его через год) и поддерживает MD5, SHA1, SHA256 и т. д.
1. контрольная сумма
Я использую утилиту командной строки контрольной суммы.
- С открытым исходным кодом,
- Служба поддержки
md5
,sha1
,sha256
а такжеsha512
,
Использование:
контрольная сумма [-t=sha1|sha256|sha512|md5] [-c= подпись] [-f=] путь к файлу
2. Аргументы командной строки
-?
,--help
,-h
Распечатывает варианты.-f
,--file=VALUE
Имя файла.-t
,--type
,--hashtype=VALUE
Hashtype по умолчаниюmd5
,-c
,--check=VALUE
Необязательно: проверка - подпись, которую вы хотите проверить. Нечувствительный к регистру.
3. Примеры использования
# Check md5 for "E:\Саша Неотразима\Sasha-Irresistible.exe" file
SashaChernykh@DESKTOP-0G54NVG E:\Саша Неотразима
$ checksum -f "E:\Саша Неотразима\Sasha-Irresistible.exe"
342B45537C9F472B93A4A0C5997A6F52
# Check sha256
SashaChernykh@DESKTOP-0G54NVG E:\Саша Неотразима
$ checksum -f "E:\Саша Неотразима\Sasha-Irresistible.exe" -t=sha256
F6286F50925C6CBF6CBDC7B9582BFF833D0808C04283DE98062404A359E2ECC4
# Correct 41474147414741474147 sha256 hash or not?
SashaChernykh@DESKTOP-0G54NVG E:\Саша Неотразима
$ checksum -f "E:\Саша Неотразима\Sasha-Irresistible.exe" -t=sha256 -c 41474147414741474147
Error - hashes do not match. Actual value was 'F6286F50925C6CBF6CBDC7B9582BFF833D0808C04283DE98062404A359E2ECC4'
# One more attempt
SashaChernykh@DESKTOP-0G54NVG E:\Саша Неотразима
$ checksum -f "E:\Саша Неотразима\Sasha-Irresistible.exe" -t=sha256 -c F6286F50925C6CBF6CBDC7B9582BFF833D0808C04283DE98062404A359E2ECC4
Hashes match..
Вы можете использовать MD5sums для Windows, загрузка всего 28 КБ ( Cygwin может быть излишним, если все, что вам нужно, это вычислять MD5-хэши).
Самый простой способ использовать его - использовать Проводник для перетаскивания файлов на md5sums.exe, чтобы получить их MD5-хэши.
OpenHashTab имеет открытый исходный код, интегрируется с Explorer и активно развивается.
Это хорошая альтернатива HashCheck, поскольку он больше не поддерживается (более 6 лет).
Это не встроенная утилита, но очень хороший вариант
http://checksumcompare.sanktuaire.com/
Вы можете сравнить контрольную сумму по файлу и / или резюме, если две папки отличаются или идентичны.
Вы можете попробовать msys2, это здесь.
Просто введите (алгоритм) сумму. (алгоритм) - это алгоритм хеширования, который вы хотите использовать, например, md5, sha1, sha256 ...
В отличие от Cygwin, этот инструмент является портативным, вы просто скачиваете ZIP-файл и распаковываете его в любое место. Вы можете использовать его простым щелчком мыши (msys2.exe).
Хоп этот инструмент поможет вам.
HashTab 3.0 - это бесплатное расширение оболочки, которое вычисляет множество контрольных сумм, включая MD5. Он интегрирован как новая вкладка в свойствах файла.
Вот как я вычисляю контрольные суммы из Проводника, не используя стороннее программное обеспечение.
В Windows 10 (и, возможно, в предыдущих версиях) выполните следующие действия:
С помощью проводника откройте папку «Отправить», введя ее в адресную строку.
shell:sendto
Создайте в этой папке пакетный файл с названием вроде Calculate SHA1 и MD5.cmd.
и добавьте этот текст
@echo off
certUtil -hashfile %1 SHA1
certUtil -hashfile %1 MD5
pause
Теперь вы сможете рассчитать контрольные суммы SHA1 и MD5 для любого файла из Проводника, просто щелкнув файл правой кнопкой мыши и выбрав команду «Отправить» для расчета SHA1 и MD5.cmd.
Конечно, вы можете изменить имя вышеуказанного файла и добавить другие контрольные суммы или даже создать несколько файлов, каждый с разным типом хеша.
У меня есть еще один пакетный файл под названием Calculate SHA256.cmd , который я предпочитаю использовать независимо (вы не захотите вычислять каждый тип хеша из одного пакетного файла, поскольку для очень больших файлов это займет слишком много времени).
Еще несколько примечаний
Чтобы сделать вывод менее загроможденным, я предпочитаю направлять его через findstr.
certUtil -hashfile %1 SHA256 | findstr ^1
Инструкция паузы в конце командного файла обязательна, иначе окно немедленно исчезнет.
Если у вас нет времени проверить выводcertutil
персонаж за персонажем<hash size>
количество раз, трубка дляfind
утилита для проверки совпадения контрольной суммы:
certutil -hashfile ekaf_elbatuc.exe sha256 | find "<checksum>" && echo File ok. || echo Some mole or rat waz hia
Но тогда какой смысл получать хэш с того же сервера, что и сам файл?
Протестировано на Win 10 CMD.
Существует около 100 сторонних инструментов. Я использую MD5Hash. Для загрузки файлов sfv просто используйте TeraCopy, чтобы проверить хэши.
Для решения, которое работает в Windows или в любой другой среде, используйте Python.
установить Python - установщик Windows предоставляется по https://www.python.org/downloads/
скачать проверенный
cksum
реализация, например, http://pastebin.com/raw.php?i=cKATyGLb - сохраните содержимое этого, чтобы сказать,c:\cksum.py
или где вам удобно
Затем выполнить контрольную сумму:
python c:\cksum.py INPUTFILE
Не так быстро, как скомпилированная утилита, но совместимо с Unix cksum
и бежит куда угодно.