Чи є вбудована утиліта контрольної суми / хеш для Windows 7?
Чи є вбудована утиліта контрольної суми / хеш для Windows 7?
Відповіді:
Існує вбудована утиліта, як зазначено в цій іншій відповіді .
Однак ви можете скористатися цим безкоштовним додатком під назвою HashTab, який чітко інтегрується з Windows Explorer, зареєструвавши ... ну, вкладку в діалоговому вікні властивостей файлів. Це досить солодко.
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, ви можете додати магію PowerShell:
$(CertUtil -hashfile C:\TEMP\MyDataFile.img MD5)[1] -replace " ",""
certutil
це не доступно в Windows PE , тому якщо ви намагаєтеся обчислити контрольну суму в сценарії завдань перед розгортанням в PE, вам доведеться використовувати зовнішній інструмент, як Microsoft FCIV .
CertUtil -hashfile C:\TEMP\MyDataFile.img MD5
не створює такий самий хеш, як md5sum /tmp/MyDataFile.img
під Linux (я гарантую, що це той самий файл із кріпленням)
Я використовую HashCheck ( остання версія ), який інтегрується як сторінка властивості для файлів і включає контекстне меню для порівняння з файлами перевірки хеш-файлів (SFV).
Це безкоштовно, і джерело доступне.
Існує утиліта FCIV від Microsoft, програма перевірки цілісності файлів Microsoft ( посилання на завантаження ).
Інструмент перевірки цілісності файлових файлів Microsoft - це непідтримувана утиліта командного рядка, яка обчислює криптографічні хеші 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"
powershell Get-FileHash -Algorithm md5 <file_to_check> | Format-List
Get-FileHash "C:\foo.exe" -Algorithm MD5,SHA1,SHA256 | Format-List
своєрідно, щоб перелічити декілька хешей підряд? Немає такої інструкції, що зберігається в консолі? Я кілька разів намагався переформулювати правильний синтаксис, але це повертає мені помилку, і, здається, це не працює без вбудовування сценарію.
Нова версія 7-Zip також надає можливість контрольних сум просто клацанням правою кнопкою миші (це не включає MD5 ). У ньому є SHA-1 , SHA-256 , CRC-32, CRC-64 тощо.
Для MD5 ви можете завантажити HashTab і перевірити, натиснувши правою кнопкою миші та виберіть властивості.
Ось один, який я використав до цього, добре поєднується з діалоговим вікном «Властивості» Провідника: Літні властивості . Це відкритий код , також доступна версія x64 .
Мені також подобається FileAlyzer Safeger Networking , який також надає додаткові функції. Але тільки для контрольних сум, Summer Properties невелика і робить свою роботу.
NirSoft в HashMyFiles це невелика утиліта , яка дозволяє обчислити MD5 і SHA1 хеші одного або декількох файлів у вашій системі. Ви можете легко скопіювати хеш-список MD5 / SHA1 у буфер обміну або зберегти їх у файл text / html / xml.
HashMyFiles можна також запустити з контекстного меню Windows Explorer і відобразити хеші MD5 / SHA1 вибраного файлу або папки.
HashMyFiles безкоштовний і портативний.
…that integrates into Windows [Explorer]
Я знайшов цей сценарій 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, який я вважаю, що ви встановили
Я додаю це сюди лише тому, що я не побачив жодних повністю працюючих прикладів оболонок, готових до копію-вставлення:
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:\>
Перевірка цілісності файлової перевірки файлів Microsoft . Він може обчислитихеш-значення MD5 та SHA-1 .
Завантажте, витягніть файли, потім відкрийте командний рядок, перейдіть до вилученого шляху та введіть таку команду:
fciv -md5 filepath\filename.extension
Наприклад:
fciv -md5 d:\programs\setup.exe
'fciv' is not recognized as an internal or external command, operable program or batch file.
Microsoft Windows [Версія 10.0.14393]
На жаль, не про те, що я знаю, але набір 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\""
certutil -hashfile %1 md5
працює, а
Контекстне меню MD5 робить саме це. Він додає опцію MD5 у контекстне меню файлів:
Контекстне меню MD5 - це безкоштовне розширення оболонки для Windows, яке відображає хеш-суму MD5 обраного файлу.
В ній сказано, що він сумісний із Windows 95, 98, ME, NT, 2000 та XP, хоча для мене це працює чудово у Windows 7. Це невелике завантаження (238 КБ) і включає все необхідне.
Це лише сценарій оболонки 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
Cygwin містить md5sum.exe
утиліту, яка повинна робити те, що ви хочете.
QuickHash підтримує SHA-256 і SHA-512. Мені була потрібна підтримка SHA-256, щоб перевірити контрольну суму білих бібліотек JavaScript для включення в додаток Firefox.
Я використовую утиліту командного рядка контрольної суми .
md5
, sha1
, sha256
і sha512
.Використання:
контрольна сума [-t = sha1 | sha256 | sha512 | md5] [-c = підпис] [-f =] filepath
-?
, --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..
HashTab 3.0 - це безкоштовне розширення оболонки, яке обчислює багато контрольних сум, включаючи MD5. Вона інтегрована як нова вкладка у Властивості файлу.
Ви можете використовувати MD5sums для Windows , завантаження всього 28 Кб ( Cygwin може бути зайвим, якщо все, що ви хочете зробити, це обчислити хеши MD5).
Найпростіший спосіб його використання - використовувати Explorer для перетягування файлів на md5sums.exe для отримання їх хешей MD5.
Правильна відповідь, звичайно, так, CertUtil (див . Відповідь tedr2 ).
Але я додам безкоштовну перевірку файлів перевірки файлів Penteract, яка, я думаю, є однією з найбільш зручних програм. (Відмова: Я пов'язаний з Penteract.)
Деякі його переваги:
Для перевірки цілісності цієї програми (проти атак зловмисників ) - вона завантажується через захищене з'єднання.
Плюс: безкоштовно, в автономному режимі (так що вам не доведеться завантажувати файли), зручним для користувачів (перетягніть файл і отримайте результат), запускається з меню «Пуск» (не потрібно шукати завантажений виконуваний файл, коли ви хочете користуйтеся ним через рік) та підтримує MD5, SHA1, SHA256 тощо.
Це не вбудована утиліта, але її дуже хороший варіант
http://checksumcompare.sanktuaire.com
Ви можете порівняти контрольну суму за файлом та / або резюме, якщо дві папки відрізняються або однакові.
Ви можете спробувати msys2, це тут .
Просто введіть (алгоритм) суму. (алгоритм) - алгоритм хешу, який ви хочете використовувати, наприклад, md5, sha1, sha256 ...
На відміну від Cygwin, цей інструмент є портативним, вам просто потрібно завантажити .zip файл і витягнути в будь-яке місце, де ви хочете. Ви можете використовувати його простим клацанням (msys2.exe).
Хоп цей інструмент вам допоможе.
Для рішення, яке працює в Windows або майже в будь-якому іншому середовищі, використовуйте Python.
install 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
і працює в будь-якому місці.