Gibt es ein integriertes Prüfsummenprogramm unter Windows 7?
Gibt es ein integriertes Prüfsummen-/Hash-Programm unter Windows 7?
CertUtil ist ein vorinstalliertes Windows-Dienstprogramm, das zur Erzeugung von Hash-Prüfsummen verwendet werden kann:
certUtil -hashfile pathToFileToCheck [HashAlgorithm]
HashAlgorithmus-Auswahl: MD2 MD4 MD5 SHA1 SHA256 SHA384 SHA512
So erzeugt z.B. das Folgende eine MD5-Prüfsumme für die Datei C:\TEMP\MyDataFile.img
:
CertUtil -hashfile C:\TEMP\MyDataFile.img MD5
Um eine Ausgabe ähnlich wie bei *Nix-Systemen zu erhalten, können Sie etwas PowerShell-Magie hinzufügen:
$(CertUtil -hashfile C:\TEMP\MyDataFile.img MD5)[1] -replace " ",""
Es gibt ein eingebautes Dienstprogramm, wie in diese andere Antwort angegeben.
Sie können jedoch diese Freeware-Anwendung namens HashTab verwenden, die sich nahtlos in den Windows-Explorer integrieren läßt, indem Sie ein… na ja, ein Register im Eigenschaften-Dialog von Dateien registrieren. Das ist ziemlich süß.
Ich verwende HashCheck neueste Version ], das sich als Eigenschaftsseite für Dateien integriert und ein Kontextmenü zum Vergleich gegen HashCheck-Dateien (SFV) enthält.
Es ist kostenlos, und der Quellcode ist verfügbar.
Es gibt das FCIV-Dienstprogramm von Microsoft, den Microsoft File Checksum Integrity Verifier Download-Link ).
Das Microsoft File Checksum Integrity Verifier-Tool ist ein nicht unterstütztes Befehlszeilenprogramm, das kryptographische MD5- oder SHA1-Hashes für Dateien berechnet.
Es zeigt Windows 7 in den Systemanforderungen nicht an, aber ich habe es gerade in Windows 8 verwendet und es hat funktioniert.
PowerShell Version 4 und höher enthält das Cmdlet “ Get-FileHash ”.
powershell get-filehash -algorithm md5 <file_to_check>
Verwenden Sie doskey , um einen dauerhaften Alias zu erstellen, der leichter zu merken ist.
doskey sha1sum=powershell get-filehash -algorithm sha1 "$1"
doskey md5sum=powershell get-filehash -algorithm md5 "$1"
Hier ist eine, die ich schon früher verwendet habe und die sich gut in den “Eigenschaften”-Dialog des Explorers integrieren lässt: Sommer-Eigenschaften . Es ist quelloffen , und eine x64-Version ist ebenfalls verfügbar.
Mir gefällt auch Safer Networking’s FileAlyzer , das ebenfalls zusätzliche Funktionen bietet. Aber nur für Prüfsummen, Summer Properties ist leichtgewichtig und erfüllt seine Aufgabe.
Ich habe dieses PowerShell-Skript gefunden:
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
}
}
}
}
Quelle: Berechnen von SHA1 in PowerShell
Es nutzt .NET, von dem ich annehme, dass Sie es installiert haben
Ich füge dies hier nur hinzu, weil ich keine voll funktionsfähigen Power-Shell-Beispiele gesehen habe, die zum Kopieren und Einfügen bereit sind:
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:\>
Die Ausgabe von certutil
scheint sich seit Windows 8 geändert zu haben, so dass mein alter Filter zum Isolieren des Hashes nicht mehr funktioniert. Die überflüssigen Leerzeichen sind auch weg - eine Sache weniger, um die man sich bei der Skripterstellung Sorgen machen muss. Hier ist die neue kopier- und einfügbare Demo:
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:\>
Um dies gegen den Bruch durch eine weitere zukünftige Änderung in certutil
widerstandsfähiger zu machen, sollten wir nach Zeilen mit Nicht-Hex-Zeichen suchen, um diese herauszufiltern: [^0-9a-zA-Z]
. Das sollte es auch für andere Schauplätze und Sprachen sicherer machen.
C:\>CertUtil -hashfile "C:\windows\fonts\arial.ttf" | findstr -vrc:"[^0123-9aAb-Cd-EfF]"
12c542ef8c99cf3895ad069d31843a5210857fdc
Warum ist dieses tatsächliche Anti-Hex-Regex so seltsam? Siehe diese Frage , um zu erfahren, wie Regex-Bereiche in findstr
nicht so funktionieren, wie sie sollten. Ich habe ein zusätzliches Leerzeichen eingefügt, um die Abwärtskompatibilität mit älteren Versionen von certutil
zu gewährleisten, aber das ist optional.
Beachten Sie, dass die Power-Shell Get-FileHash
standardmäßig auf SHA256 eingestellt ist, während certutil
immer noch auf SHA1 voreingestellt ist. Geben Sie daher Ihren Algorithmus bei Bedarf explizit an. Sie können die verfügbaren Optionen wie folgt schnell überprüfen:
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-Datei-Prüfsummenintegritätsprüfer _. Er kann MD5 und SHA-1 Hashwerte berechnen.
Herunterladen, Extrahieren der Dateien, dann eine Eingabeaufforderung öffnen, zum extrahierten Pfad gehen und dann den folgenden Befehl eingeben:
fciv -md5 filepath\filename.extension
Zum Beispiel:
fciv -md5 d:\programs\setup.exe
Leider nicht, dass ich wüsste, aber Microsofts Suite Sysinternals enthält ein nettes Tool namens * sigcheck **.
Eine Batch-Datei, die auf pbarneys Kommentar zu der Antwort mit den meisten Stimmen basiert: Dies kopiert den MD5-Hash der Datei, die auf die Stapeldatei gezogen wurde, in die Zwischenablage:
@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
Um ihn stattdessen zu einem Kontextmenüeintrag zu machen:
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\""
Dies ist nur ein cmd-Shell-Skript, das tedr2’s Antwort verwendet, aber die überflüssigen Ausgabezeilen und Leerzeichen entfernt:
:: 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
Die Ausgabe kann bei Bedarf in eine Datei umgeleitet werden:
@echo %str% > %3
z.B.
sys> \dev\cmd\hash.cmd MyApp.dll SHA1
8ae6ac1e90ccee52cee5c8bf5c2445d6a92c0d4f
MD5-Kontextmenü tut genau dies. Es fügt eine Option * MD5 ** zum Kontextmenü von Dateien hinzu:
MD5-Kontextmenü ist eine Freeware-Shell-Erweiterung für Windows, die die MD5-Hash-Summe der ausgewählten Datei anzeigt.
Es sagt, es sei kompatibel mit Windows 95, 98, ME, NT, 2000 und XP, obwohl es für mich unter Windows 7 vollkommen problemlos funktioniert. Es ist ein winziger Download (238 KB) und enthält alles, was Sie brauchen.
Cygwin enthält ein Dienstprogramm md5sum.exe
, das tun sollte, was Sie wollen.
Ich verwende Prüfsumme Befehlszeilen-Dienstprogramm.
md5
, sha1
, sha256
und sha512
. Verwendung:
Prüfsumme [-t=sha1|sha256|sha512|md5] [-c=Signatur] [-f=]Dateipfad
-?
, --help
, -h
Druckt die Optionen aus. -f
, --file=VALUE
Dateiname. -t
, --type
, --hashtype=VALUE
Hashtype Standardmäßig auf md5
gesetzt. Groß-/Kleinschreibung wird nicht berücksichtigt. # 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..
Dies ist kein eingebautes Dienstprogramm, aber es ist eine sehr gute Option http://checksumcompare.sanktuaire.com
Sie könnten die Prüfsumme nach Datei und/oder Zusammenfassungen vergleichen, wenn zwei Ordner sich unterscheiden oder identisch sind.
Sie können MD5sums for Windows verwenden, ein Download von nur 28 KB Cygwin könnte ein Overkill sein, wenn Sie nur MD5-Hashes berechnen wollen).
Am einfachsten ist es, den Explorer zu verwenden, um Dateien per Drag & Drop auf md5sums.exe zu ziehen, um ihre MD5-Hashes zu erhalten.
Die richtige Antwort ist natürlich, ja, CertUtil (siehe tedr2’s Antwort ).
Aber ich füge noch Penteract’s kostenloses File Checksum Verifier hinzu, das meiner Meinung nach eines der benutzerfreundlichsten Programme ist. (Haftungsausschluss: Ich bin mit Penteract verbunden.)
Einige seiner Vorteile:
Zur Überprüfung der Integrität dieses Programms (gegen Man-in-the-Middle-Angriffe ) - es wird über eine sichere Verbindung heruntergeladen.
Plus: kostenlos, offline (damit Sie Ihre Dateien nicht hochladen müssen), benutzerfreundlich (ziehen Sie eine Datei hinein und erhalten Sie das Ergebnis), startet über das Startmenü (Sie brauchen nicht nach der heruntergeladenen ausführbaren Datei zu suchen, wenn Sie sie in einem Jahr benutzen wollen) und unterstützt MD5, SHA1, SHA256 usw.
HashTab 3.0 ist eine freie Shell-Erweiterung, die viele Prüfsummen, einschließlich MD5, berechnet. Sie ist als neuer Tab in den Dateieigenschaften integriert.
Sie können msys2 versuchen, es ist hier .
Geben Sie einfach (Algorithmus)summe ein. (Algorithmus) ist der Hash-Algorithmus, den Sie verwenden wollen, z.B. md5, sha1, sha256 …
Im Gegensatz zu Cygwin ist dieses Tool portabel, Sie brauchen nur die .zip-Datei herunterzuladen und an beliebiger Stelle zu extrahieren. Sie können es mit einem einfachen Klick benutzen(msys2.exe).
Hop dieses Tool wird Ihnen helfen.
Nun, ich habe ein Programm gemacht, um einige Hashes aus einer Datei zu berechnen. Ich hoffe, es hilft Ihnen.
Was macht das? Es berechnet den SHA-1 Hash, SHA-384 Hash, MD5 Hash und SHA-256 Hash. Nun, das war’s ungefähr :)
Für eine Lösung, die unter Windows oder fast jeder anderen Umgebung funktioniert, verwenden Sie Python.
installieren Sie Python – ein Windows-Installationsprogramm finden Sie unter https://www.python.org/downloads/
laden Sie eine getestete cksum
-Implementierung herunter, z.B. http://pastebin.com/raw.php?i=cKATyGLb – speichern Sie den Inhalt dieses Programms, um z.B. c:\cksum.py
zu sagen, oder wo immer Sie es bequem finden
Dann eine Prüfsumme durchzuführen:
python c:\cksum.py INPUTFILE
Nicht so schnell wie ein kompiliertes Dienstprogramm, aber kompatibel mit Unix cksum
und läuft überall.