2011-02-14 18:38:56 +0000 2011-02-14 18:38:56 +0000
707
707

Czy w systemie Windows 7 istnieje wbudowane narzędzie sum kontrolnych?

Czy w systemie Windows 7 istnieje wbudowane narzędzie sum kontrolnych/hash?

Odpowiedzi (26)

1237
1237
1237
2015-04-06 15:21:26 +0000

CertUtil jest preinstalowanym narzędziem Windows, które może być używane do generowania sum kontrolnych haszu:

certUtil -hashfile pathToFileToCheck [HashAlgorithm]

HashAlgorithm choices: MD2 MD4 MD5 SHA1 SHA256 SHA384 SHA512

Tak więc, na przykład, następujące narzędzie generuje sumę kontrolną MD5 dla pliku C:\TEMP\MyDataFile.img:

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

Aby uzyskać wyjście podobne do *Nix systemów można dodać trochę magii PowerShell:

$(CertUtil -hashfile C:\TEMP\MyDataFile.img MD5)[1] -replace " ",""
201
201
201
2011-02-14 18:42:47 +0000

Istnieje wbudowane narzędzie, jak określono w ta druga odpowiedź .

Możesz jednak użyć tej darmowej aplikacji o nazwie HashTab , która integruje się z Eksploratorem Windows poprzez zarejestrowanie a… dobrze, zakładki w oknie dialogowym właściwości plików. To całkiem słodkie.

183
183
183
2009-12-30 05:15:56 +0000

Używam HashCheck najnowsza wersja ), która integruje się jako strona właściwości dla plików i zawiera menu kontekstowe do porównania z plikami hash check (SFV).

Jest darmowe, a źródło jest dostępne.

85
85
85
2012-09-05 11:51:42 +0000

Istnieje narzędzie FCIV firmy Microsoft, Microsoft File Checksum Integrity Verifier link do pobrania ).

Narzędzie Microsoft File Checksum Integrity Verifier jest nieobsługiwanym narzędziem wiersza poleceń, które oblicza kryptograficzne skróty plików MD5 lub SHA1.

Nie pokazuje systemu Windows 7 w wymaganiach systemowych, ale właśnie użyłem go w Windows 8 i zadziałał.

79
79
79
2015-05-22 20:58:13 +0000

PowerShell w wersji 4 i większej zawiera Get-FileHash cmdlet.

powershell get-filehash -algorithm md5 <file_to_check>

Użyj doskey aby utworzyć trwały alias, który jest łatwiejszy do zapamiętania.

doskey sha1sum=powershell get-filehash -algorithm sha1 "$1"
doskey md5sum=powershell get-filehash -algorithm md5 "$1"
40
40
40
2016-01-11 21:31:41 +0000
24
24
24
2009-12-30 00:55:29 +0000

Oto jeden z nich, którego używałem wcześniej, który ładnie integruje się z dialogiem “Właściwości” Explorera: Summer Properties . Jest to otwarte źródło, dostępna jest także wersja x64.

Lubię także Safer Networking’s FileAlyzer , który oferuje także dodatkowe funkcje. Ale tylko dla sum kontrolnych, Summer Properties jest lekkie i wykonuje swoją pracę.

14
14
14
2011-02-14 19:45:15 +0000

Znalazłem ten skrypt 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
            }
        }
    }
}

Źródło: Obliczenie SHA1 w PowerShell

Wykorzystuje on .NET, który zakładam, że masz zainstalowany

11
11
11
2016-10-19 01:33:24 +0000

Dodaję to tutaj tylko dlatego, że nie widziałem żadnych w pełni działających przykładów powershell'a, gotowych do skopiowania:

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:\>

2019 Update:

Wyjście certutil wydaje się zmieniać od czasów Windows 8, więc mój stary filtr do izolowania haszu już nie działa. Zniknęły też zewnętrzne spacje - o jedną rzecz mniej, o którą trzeba się martwić podczas pisania skryptu. Oto nowe demo z możliwością kopiowania:

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:\>

Aby uczynić to bardziej odpornym na złamania z kolejnej przyszłej zmiany w certutil, powinniśmy poszukać linii ze znakami innymi niż szesnastkowe do odfiltrowania: [^0-9a-zA-Z]. To powinno również uczynić go bezpieczniejszym dla innych miejsc i języków.

C:\>CertUtil -hashfile "C:\windows\fonts\arial.ttf" | findstr -vrc:"[^0123-9aAb-Cd-EfF]"
12c542ef8c99cf3895ad069d31843a5210857fdc

Dlaczego ten rzeczywisty antyheksowy regex jest tak dziwny? Zobacz to pytanie aby dowiedzieć się jak zakresy regexowe w findstr nie działają tak jak powinny. Dodałem dodatkowy znak spacji dla wstecznej kompatybilności ze starszymi wersjami certutil, ale jest on opcjonalny.

Zauważ, że powershell Get-FileHash domyślnie jest SHA256, podczas gdy certutil nadal domyślnie jest SHA1. Określ więc wyraźnie swój algorytm tam, gdzie to konieczne. Możesz szybko sprawdzić dostępne opcje, takie jak:

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
8
8
8
2013-03-17 20:26:52 +0000

Microsoft File Checksum Integrity Verifier _. Może on obliczyć MD5 i SHA-1 wartości hash.

Pobierz, rozpakuj pliki, następnie otwórz polecenie zachęty, przejdź do rozpakowanej ścieżki, a następnie wpisz następujące polecenie:

fciv -md5 filepath\filename.extension

Na przykład:

fciv -md5 d:\programs\setup.exe
7
7
7
2014-09-13 14:14:08 +0000

Niestety, nie jestem tego świadom, ale pakiet Microsoft Sysinternals zawiera ładne narzędzie o nazwie * sigcheck **.

7
7
7
2016-05-24 09:59:53 +0000

Plik wsadowy oparty na komentarzu pbarney'a do odpowiedzi z największą ilością głosów: To kopiuje hash MD5 dowolnego pliku, który jest przeciągnięty na plik wsadowy do schowka:

@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

Aby uczynić go pozycją menu kontekstowego zamiast:

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\""
4
4
4
2017-09-02 13:47:32 +0000

Jest to tylko skrypt powłoki cmd, który wykorzystuje odpowiedź tedr2 , ale odcina obce linie wyjściowe i spacje:

:: 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

Wyjście może być przekierowane do pliku w razie potrzeby:

@echo %str% > %3

np.

sys> \dev\cmd\hash.cmd MyApp.dll SHA1
8ae6ac1e90ccee52cee5c8bf5c2445d6a92c0d4f
4
4
4
2009-12-30 04:08:39 +0000

Menu kontekstowe MD5 robi dokładnie to. Dodaje opcję * MD5 ** do menu kontekstowego plików:

MD5 Context Menu jest darmowym rozszerzeniem powłoki dla Windows, które wyświetla sumę hash MD5 wybranego pliku.

Mówi, że jest kompatybilne z Windows 95, 98, ME, NT, 2000 i XP, chociaż działa dla mnie doskonale na Windows 7. Jest to mały plik do pobrania (238 KB) i zawiera wszystko czego potrzebujesz.

3
3
3
2012-11-18 00:01:54 +0000

(http://cygwin.org) zawiera narzędzie md5sum.exe, które powinno robić to, co chcesz.

2
2
2
2017-01-04 12:10:05 +0000

1. suma kontrolna

Używam suma kontrolna narzędzia linii poleceń.

Użycie:

suma kontrolna [-t=sha1|sha256|sha512|md5] [-c=podpis] [-f=]ścieżka pliku


2. Command-line arguments

  • -?, --help, -h Prints out the options.
  • -f, --file=VALUE Filename.
  • -t, --type, --hashtype=VALUE Hashtype Defaults to md5.
  • -c, --check=VALUE Optional: check - podpis, który chcesz sprawdzić. Wielkość liter nie ma znaczenia.

3. Przykłady użycia

# 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..
1
1
1
2009-12-30 00:57:03 +0000

Coś w tym stylu: (http://www.nullriver.com/products/winmd5sum). Ten też jest ładny: sendtoMD5 - kliknij prawym przyciskiem myszy, wyślij do…, i dostaniesz wynik.

1
1
1
2017-06-26 19:14:09 +0000

Nie jest to wbudowane narzędzie, ale bardzo dobra opcja http://checksumcompare.sanktuaire.com

Można porównać sumy kontrolne według plików i/lub podsumowań, jeśli dwa foldery różnią się lub są identyczne.

1
1
1
2012-11-18 00:11:17 +0000

Możesz użyć MD5sums dla Windows , pobranie tylko 28 KB Cygwin może być overkill jeśli wszystko co chcesz zrobić to obliczyć MD5 hashes).

Najprostszym sposobem użycia jest użycie Explorera do przeciągania i upuszczania plików na md5sums.exe aby uzyskać ich MD5 hashes.

1
1
1
2015-08-31 21:35:34 +0000

Prawidłową odpowiedzią jest oczywiście, tak, CertUtil (patrz odpowiedź tedr2 ).

Ale dodam darmowy Penteract File Checksum Verifier , który, jak sądzę, jest jednym z najbardziej przyjaznych użytkownikowi programów. (Zastrzeżenie: Jestem związany z Penteractem.)

Niektóre z jego zalet:

  • Porównuje wyliczone i oczekiwane hashesy dla Ciebie.
  • Minimalistyczny - brak pozycji w context-menus plików, brak dodatkowej zakładki na właściwości plików.

Aby zweryfikować integralność tego programu (przeciwko man-in-the-middle attacks ) - pobiera się przez bezpieczne połączenie.

Plus: darmowy, offline (dzięki czemu nie musisz wczytywać swoich plików), przyjazny dla użytkownika (przeciągnij plik i uzyskaj wynik), uruchamia się z menu startowego (nie trzeba szukać pobranego pliku wykonywalnego, jeśli chcesz go używać za rok) oraz obsługuje MD5, SHA1, SHA256, itd.

1
1
1
2009-12-30 06:12:33 +0000

HashTab 3.0 jest wolnym rozszerzeniem powłoki, które oblicza wiele sum kontrolnych, włączając MD5. Jest ono zintegrowane jako nowa karta we właściwościach plików.

1
1
1
2018-07-07 09:29:40 +0000

Możesz spróbować msys2, to jest tutaj .

Po prostu wpisz (algorytm)sumę. (algorytm) jest algorytmem hash, który chcesz użyć np. md5, sha1, sha256 …

W przeciwieństwie do Cygwina, to narzędzie jest przenośne, wystarczy pobrać plik .zip i rozpakować w dowolnym miejscu. Możesz go użyć za pomocą prostego kliknięcia(msys2.exe).

Hop to narzędzie pomoże Ci.

-1
-1
-1
2014-09-08 18:50:39 +0000

Cóż, zrobiłem program aby obliczyć kilka haszyszów z pliku. Mam nadzieję, że to ci pomoże.

Co to robi? Oblicza SHA-1 hash, SHA-384 hash, MD5 hash i SHA-256 hash. Cóż, chodzi o to :)

-1
-1
-1
2011-02-16 08:27:33 +0000

Tam jest jak 100 innych narzędzi. Ja używam MD5Hash. W przypadku pobierania plików sfv, wystarczy użyć TeraCopy do weryfikacji haszy.

-2
-2
-2
2014-08-22 19:44:02 +0000

Dla rozwiązania, które działa na Windowsie lub w innym środowisku, użyj Pythona.

  1. zainstaluj Pythona – instalator Windows jest dostępny na stronie https://www.python.org/downloads/

  2. pobierz przetestowaną implementację cksum, np. http://pastebin.com/raw.php?i=cKATyGLb – zapisz jego zawartość do powiedzenia, c:\cksum.py lub gdziekolwiek uznasz za wygodne

Następnie wykonaj sumę kontrolną:

python c:\cksum.py INPUTFILE

Nie tak szybko jak skompilowane narzędzie, ale kompatybilne z Unixem cksum i działa w dowolnym miejscu.

-3
-3
-3
2014-06-16 22:08:04 +0000

Lubię digestIT , chociaż wydaje się być dość stary i może nie utrzymany.