Есть ли встроенная утилита контрольной суммы в Windows 7?
Есть ли встроенная утилита контрольной суммы/хэша в Windows 7?
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 " ",""
Существует встроенная утилита, как указано в этот другой ответ .
Вы можете, однако, использовать это бесплатное приложение под названием HashTab , которое аккуратно интегрируется с Проводником Windows, зарегистрировав… ну, вкладку в диалоге свойств файлов. Это довольно мило.
Я использую HashCheck последняя версия ), который интегрируется как страница свойств для файлов и включает контекстное меню для сравнения с хеш-файлами проверки (SFV).
Это бесплатно, и исходный текст доступен.
Есть утилита FCIV от Microsoft, Microsoft File Checksum Integrity Verifier ссылка для скачивания ).
Утилита Microsoft File Checksum Integrity Verifier является неподдерживаемой утилитой командной строки, которая вычисляет криптографические хэши MD5 или SHA1 для файлов.
Она не показывает системные требования Windows 7, но я только что использовал ее в Windows 8, и она работала.
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"
Вот один, который я использовал до этого, который хорошо интегрируется с диалогом “Свойства” Проводника: Летние свойства . Это открытый источник, и версия x64 также доступна.
Мне также нравится Safer Networking в FileAlyzer , который обеспечивает дополнительные функции, а также. Но только для контрольных сумм, Летние Свойства легки и делает работу.
Я нашел этот скрипт 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
}
}
}
}
Source: Расчет SHA1 в PowerShell
Он использует .NET, который, как я полагаю, вы установили.
Я добавляю это здесь только потому, что не видел полностью работающих примеров 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:\>
Вывод certutil
, кажется, изменился со времен Windows 8, так что мой старый фильтр для изоляции хэша больше не работает. Посторонние пробелы тоже исчезли - меньше поводов для беспокойства при написании скриптов. Вот новая демонстрация с возможностью копирования и вставки:
C:\>CertUtil -hashfile "%systemroot%\system32\csrss.exe" | findstr -v ash
0300c7833bfba831b67f9291097655cb162263fd
C:\>CertUtil -hashfile "%systemroot%\system32\csrss.exe" SHA256 | findstr -v :
a37d616f86ae31c189a05b695571732073b9df97bf5a5c7a8ba73977ead3e65b
C:\>ver
Microsoft Windows [Version 10.0.16299.1451]
C:\>
Чтобы сделать это более устойчивым к повреждению от очередного изменения в certutil
, мы должны искать строки с не-шестнадцатеричными символами для фильтрации: [^0-9a-zA-Z]
. Это также должно сделать его более безопасным для других локалей и языков.
C:\>CertUtil -hashfile "C:\windows\fonts\arial.ttf" | findstr -vrc:"[^0123-9aAb-Cd-EfF]"
12c542ef8c99cf3895ad069d31843a5210857fdc
Почему этот анти-шестигранный регекс настолько странный? Смотрите этот вопрос , чтобы узнать, как регекс-диапазоны в findstr
работают не так, как должны. Я включил дополнительный символ пробела для обратной совместимости со старыми версиями certutil
, но это необязательно.
Обратите внимание, что по умолчанию Powerhell Get-FileHash
- это SHA256, в то время как certutil
все еще имеет значение по умолчанию SHA1. Поэтому укажите ваш алгоритм явно, где это необходимо. Вы можете быстро проверить доступные опции, такие как:
C:\>powershell -c "Get-FileHash -?" | findstr gori
Get-FileHash [-Path] <string[]> [-Algorithm {SHA1 | SHA256 | SHA384 | SHA512 | MACTripleDES | MD5 | RIPEMD160}]
Get-FileHash -LiteralPath <string[]> [-Algorithm {SHA1 | SHA256 | SHA384 | SHA512 | MACTripleDES | MD5 |
Get-FileHash -InputStream <Stream> [-Algorithm {SHA1 | SHA256 | SHA384 | SHA512 | MACTripleDES | MD5 | RIPEMD160}]
C:\>certutil -hashfile -v /? | findstr gori
CertUtil [Options] -hashfile InFile [HashAlgorithm]
Hash algorithms: MD2 MD4 MD5 SHA1 SHA256 SHA384 SHA512
```.
Microsoft File Checksum Integrity Verifier _. Он может вычислять MD5 и SHA-1 хэш-значения.
Загрузить, извлечь файлы, затем открыть командную строку, перейти к извлеченному пути и затем ввести следующую команду:
fciv -md5 filepath\filename.extension
Например:
&00001
К сожалению, я не в курсе, но пакет Microsoft Sysinternals включает в себя хороший инструмент под названием * sigcheck **.
Пакетный файл, основанный на комментарии 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\""
Это просто сценарий командной оболочки, который использует ответ 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
Контекстное меню MD5 делает именно так. Оно добавляет опцию * MD5 ** в контекстное меню файлов:
Контекстное меню MD5 - это бесплатное расширение оболочки для Windows, которое отображает хеш-сумму MD5 выбранного файла.
Оно говорит, что совместимо с Windows 95, 98, ME, NT, 2000 и XP, хотя для меня оно прекрасно работает на Windows 7. Это крошечная загрузка (238 KB) и включает в себя все, что вам нужно.
Cygwin содержит утилиту md5sum.exe
, которая должна делать то, что вы хотите.
Я использую утилиту командной строки checksum .
md5
, sha1
, sha256
и sha512
. Использование:
контрольная сумма [-t=sha1|sha256|sha512|md5] [-c=подпись] [-f=]путь к файлу
-?
, --help
, -h
Распечатывание опций. -f
, --file=VALUE
Имя файла. -t
, --type
, --hashtype=VALUE
Хэш-тип по умолчанию md5
. -c
, --check=VALUE
Необязательно: проверьте - подпись, которую хотите проверить. Не чувствительна к регистру.
# 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..
Что-то вроде этого: (http://www.nullriver.com/products/winmd5sum). Этот тоже милый: sendtoMD5 - щелкните правой кнопкой мыши, отправьте на …, и вы получите результат.
Это не встроенная утилита, но ее очень хорошая опция http://checksumcompare.sanktuaire.com
Вы можете сравнить контрольную сумму по файлам и/или резюме, если две папки отличаются или идентичны.
Вы можете использовать MD5sums для Windows , загрузка только 28 KB Cygwin может быть переутомлена, если все, что вы хотите сделать, это вычислить хэши MD5).
Самый простой способ использовать его - это использовать Проводник для перетаскивания файлов на md5sums.exe для получения их хэшей MD5.
Правильный ответ, конечно, да, CertUtil (см. ответ tedr2 ](https://superuser.com/a/898377/125659)).
Но я добавлю бесплатную программу Penteract File Checksum Verifier , которая, на мой взгляд, является одной из самых удобных программ. (Отказ от ответственности: я связан с Penteract.)
Некоторые из ее преимуществ:
Проверка целостности этой программы (против man-in-the-middle атак ) - она загружается по защищенному соединению.
Plus: бесплатная, автономная (так что вам не нужно загружать файлы), удобная для пользователя (перетащите файл и получите результат), запускается из меню “Пуск” (нет необходимости искать загруженный исполняемый файл, когда вы хотите использовать его через год), и поддерживает MD5, SHA1, SHA256 и т.д.
HashTab 3.0 - бесплатное расширение оболочки, которое вычисляет множество контрольных сумм, включая MD5. Оно интегрировано в качестве новой вкладки в свойствах файла.
Вы можете попробовать msys2, это здесь .
Просто введите (алгоритм) сумму. (алгоритм) - это хэш-алгоритм, который вы хотите использовать, например md5, sha1, sha256 …
В отличие от Cygwin, этот инструмент портативен, вы просто загружаете .zip-файл и распаковываете его в любом месте. Вы можете использовать его простым щелчком мыши (msys2.exe).
Hop этот инструмент поможет вам.
Для решения, которое работает на 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
и запускается в любом месте.