Существует ли встроенный метод для вычисления хеша SHA-1 или MD5 в Windows 7?

60726
Brian Webster

Существует ли встроенный метод для вычисления хеша SHA-1 или MD5 в Windows 7?

37
http://superuser.com/questions/89191/looking-for-md5-utility-that-integrates-to-windows akira 13 лет назад 0
Я бы поддержал включение sha1 в заголовок другого вопроса и закрыл этот Brian Webster 13 лет назад 0
Этот вопрос не является дубликатом http://superuser.com/questions/89191/looking-for-md5-utility-that-integrates-to-windows. Этот вопрос требует только интеграции оболочки, без командной строки. wisbucky 9 лет назад 0
Это решение не совсем встроено в Windows 7, но если у вас уже установлен Git Bash (msys / mingw), оно включает командную строку md5sum wisbucky 9 лет назад 0
`powershell get-filehash -algorithm sha1 ` Christian Long 9 лет назад 3
Так это дубликат дубликата? Разве это не скорее ссылка на [оригинальный вопрос] (http://superuser.com/q/245775/122096), в котором содержится больше всего ответов? x29a 8 лет назад 0
На самом деле вы можете использовать certUtil, который является встроенным инструментом:> certUtil -hashfile -? Использование: CertUtil [Опции] -hashfile InFile [HashAlgorithm] Генерация и отображение криптографического хэша над файлом Dikla 7 лет назад 0

7 ответов на вопрос

31
John Sampson

Встроенной утилиты нет, однако Microsoft предоставляет утилиту командной строки для бесплатной загрузки:

Наличие и описание утилиты File Checksum Integrity Verifier

Это уже не совсем так. PowerShell 4 добавляет команду [`Get-FileHash`] (http://technet.microsoft.com/en-us/library/dn520872.aspx). (О времени, не так ли?) Хотя, если честно, PowerShell 4 сейчас устанавливается только в самых новых операционных системах Windows, но обновление крайне целесообразно на старых ОС. (PS4 также имеет много других приятных вещей.) jpmc26 10 лет назад 5
Одно важное предостережение: `fciv` не выполняется для имен файлов, содержащих символы Юникода. wisbucky 7 лет назад 0
18
akira

Нет встроенных инструментов.

Я использую расширение оболочки HashCheck :

альтернативный текст

Это мой фаворит, потому что это * расширение ядра * (не знаю, используют ли они эту терминологию). Использую его годами. David Cowden 11 лет назад 0
Есть ли способ получить хэш SHA-256 с этим? Max 10 лет назад 0
@DavidCowden: В чем преимущества реализации такой функции, как расширение ядра, по сравнению с приложением, работающим исключительно в пользовательском пространстве. Разве это не потенциально нестабильная ОС? Isaac 8 лет назад 0
@ Исаак, я скучаю, говорил. В старых терминах Windows это расширение *** shell **, а не расширение ядра. Преимущество заключается в том, что он добавляет пользовательский интерфейс прямо в проводник Windows, так что вы можете, как показано на рисунке, просматривать контрольные суммы и хэши прямо в окне свойств файла. Это довольно опрятно! David Cowden 8 лет назад 0
11
SysAdmin1138

Он не совсем встроенный, но, по крайней мере, вам не нужно загружать какое-либо новое программное обеспечение, чтобы оно работало. Вы можете создать скрипт powershell для вычисления суммы файлов MD5. Фактический сценарий можно найти здесь:

http://www.ahmadsoft.org/powershelljunkie/index.html

Скопируйте этот текст в файл, который называется «ps-md5sum.ps1», и сохраните его где-нибудь. Когда вам нужно вычислить хэш файла, откройте PowerShell в каталоге файла, который вы хотите проверить, и затем запустите его:

[PS] C:\> ps-md5sum.ps1 file-of-choice.exe 

И он должен вернуть хэш этого файла.

Этот сценарий PS1 от Джо Пруитта имитирует поведение md5 в UNIX: http://devcentral.f5.com/weblogs/Joe/archive/2009/05/18/unix-to-powershell---md5.aspx Brian Reiter 14 лет назад 0
6
Matt Hanson

Там нет ничего встроенного. Могу ли я предложить использовать HashTab ?

6
steve.lippert

Опять же, ничего не встроено, поэтому я использую HashCalc .

Скриншот HashCalc

5
Ohad Schneider

Arpoon Checksum также хорош, так как не требует установки

Arpoon Checksum - Main Screen

4
Lèse majesté

В дополнение ко всем замечательным опциям, которые уже были опубликованы, есть также md5deep / hashdeep, пакет хеш-вычислений с открытым исходным кодом для Windows (но может также использоваться в системах * nix и OS X), который поддерживает:

  • MD5
  • SHA-1
  • SHA-256
  • тигр
  • джакузи

Некоторые преимущества md5deep / hashdeep:

  • Это открытый исходный код и кроссплатформенный.
  • Он запускается из командной строки и может быть использован для сценариев.
  • Он оптимизировал двоичные файлы как для 32-битных, так и для 64-битных систем.
  • Он поддерживает современные алгоритмы хеширования (MD5 и SHA-1 на этом этапе ломаются для проверки целостности файла и цифровых подписей, поскольку коллизии для MD5 уже можно создавать с относительной легкостью, а коллизии SHA-1 все чаще находятся в пределах возможного ).
  • Он может рекурсивно генерировать контрольные суммы для всего каталога.
  • Он может проверить файл или каталог по ранее сгенерированному списку контрольных сумм, чтобы выполнить быструю проверку каталога (выявление неизвестных файлов или файлов, которые были изменены).

Чтобы использовать его в Windows, вы можете либо установить его в Cygwin, либо просто включить каталог md5deep в свою %PATH%переменную. Хотя лично я предпочитаю следующую настройку:

  1. Извлечь все файлы куда-нибудь, например

    %ProgramFiles%\md5deep

  2. Создайте набор командных файлов в вашем каталоге Windows, например

    %WinDir%\md5.bat
    %WinDir%\hash.bat
    %WinDir%\sha1.bat
    %WinDir%\sha256.bat
    %WinDir%\tiger.bat
    %WinDir%\whirlpool.bat

  3. Включите путь к соответствующим двоичным файлам, например

    В md5.bat :
    @ECHO OFF
    "%ProgramW6432%\md5deep\md5deep64.exe" %*(64-битные системы)
    "%ProgramFiles%\md5deep\md5deep.exe" %*(32-битные системы)

    В hash.bat :
    @ECHO OFF
    "%ProgramW6432%\md5deep\hashdeep64.exe" %*(64-битные системы)
    "%ProgramFiles%\md5deep\hashdeep.exe" %*(32-битные системы)
    ...

Или, если вы хотите, чтобы автоматически переключаться между 32-битной и 64-разрядной двоичными кодами для WoW64, вы можете поставить 32-разрядные двоичные файлы в %ProgramFiles(x86)%и 64-битных в %ProgramW6432%, а затем записать свои командные файлы, как это:

@ECHO OFF SET cmd=hashdeep IF "%ProgramFiles%" EQU "%ProgramW6432%" SET cmd=%cmd%64 "%ProgramFiles%\md5deep\%cmd%.exe" %*