Is er een ingebouwd controlesomprogramma op Windows 7?
Is er een ingebouwd controlesom/hashprogramma op Windows 7?
CertUtil is een voorgeïnstalleerd Windows-programma dat kan worden gebruikt om hashchecksommen te genereren:
certUtil -hashfile pathToFileToCheck [HashAlgorithm]
HashAlgorithm-keuzes: MD2 MD4 MD5 SHA1 SHA256 SHA384 SHA512
Dus bijvoorbeeld, het volgende genereert een MD5 checksum voor het bestand C:\TEMP\MyDataFile.img
:
CertUtil -hashfile C:\TEMP\MyDataFile.img MD5
Om uitvoer te krijgen die vergelijkbaar is met*Nix systemen kun je wat PowerShell magie toevoegen:
$(CertUtil -hashfile C:\TEMP\MyDataFile.img MD5)[1] -replace " ",""
Er is een ingebouwd hulpprogramma, zoals gespecificeerd in dit andere antwoord .
U kunt echter gebruik maken van deze freeware-app genaamd HashTab die netjes integreert met Windows Verkenner door het registreren van een… nou ja, een tabblad in het eigenschappenvenster van bestanden. Het is best lief.
Ik gebruik HashCheck laatste versie ) die zichzelf integreert als een eigenschapspagina voor bestanden en een contextmenu bevat om te vergelijken met hash check-bestanden (SFV).
Het is gratis en de bron is beschikbaar.
Er is het hulpprogramma FCIV van Microsoft, de Microsoft File Checksum Integrity Verifier download link ).
Het Microsoft File Checksum Integrity Verifier hulpprogramma is een niet-ondersteund hulpprogramma voor de opdrachtregel dat MD5 of SHA1 cryptografische hashes voor bestanden berekent.
Het toont Windows 7 niet in de systeemvereisten, maar ik heb het net gebruikt in Windows 8 en het werkte.
PowerShell versie 4 en hoger bevat het cmdlet Get-FileHash .
powershell get-filehash -algorithm md5 <file_to_check>
Gebruik doskey om een blijvende alias te maken die gemakkelijker te onthouden is.
doskey sha1sum=powershell get-filehash -algorithm sha1 "$1"
doskey md5sum=powershell get-filehash -algorithm md5 "$1"
Hier is er een die ik eerder heb gebruikt die mooi integreert met de Explorer’s “Properties” dialoog: Zomereigenschappen (http://www.frozenlogic.org/summerproperties.shtml). Het is open source , en er is ook een x64 versie beschikbaar.
Ik hou ook van Safer Networking’s FileAlyzer , die ook extra functies biedt. Maar alleen voor checksums is Summer Properties licht van gewicht en doet het zijn werk.
Ik vond dit PowerShell-script:
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: Berekening van SHA1 in PowerShell
Het maakt gebruik van .NET waarvan ik aanneem dat je het hebt geïnstalleerd
Ik voeg dit hier alleen toe omdat ik geen volledig werkende powershell voorbeelden heb gezien, klaar voor copy-paste:
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:\>
De certutil
uitgang lijkt te zijn veranderd sinds Windows 8, dus mijn oude filter om de hasj te isoleren werkt niet meer. De externe ruimtes zijn ook weg - een ding minder om je zorgen over te maken bij het scripten. Hier is de nieuwe kopieer-plakbare 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:\>
Om deze beter bestand te maken tegen breuk van de zoveelste toekomstige verandering in certutil
, moeten we zoeken naar regels met niet-hex karakters om uit te filteren: [^0-9a-zA-Z]
. Dat zou het ook veiliger moeten maken voor andere lokaties en talen.
C:\>CertUtil -hashfile "C:\windows\fonts\arial.ttf" | findstr -vrc:"[^0123-9aAb-Cd-EfF]"
12c542ef8c99cf3895ad069d31843a5210857fdc
Waarom is die echte anti-hex regex zo raar ? Zie deze vraag om te weten te komen hoe regexreeksen in findstr
niet werken zoals ze zouden moeten werken. Ik heb een extra spatie voor achterwaartse compatibiliteit met oudere certutil
versies toegevoegd, maar het is optioneel.
Merk op dat de powerhell Get-FileHash
standaard SHA256 is, terwijl certutil
nog steeds standaard SHA1 is. Specificeer dus expliciet uw algoritme waar nodig. U kunt de beschikbare opties als volgt snel controleren:
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 ](http://download.microsoft.com/download/c/f/4/cf454ae0-a4bb-4123-8333-a1b6737712f7/Windows-KB841290-x86-ENU.exe)_. Het kan MD5 en SHA-1 hashwaarden berekenen.
Downloaden, de bestanden uitpakken, dan een opdrachtprompt openen, naar het uitgepakte pad gaan en dan de volgende opdracht typen:
fciv -md5 filepath\filename.extension
Bijvoorbeeld:
fciv -md5 d:\programs\setup.exe
Helaas, niet dat ik weet, maar Microsoft’s Sysinternals -suite bevat een mooie tool genaamd * sigcheck **.
Een batchbestand gebaseerd op het commentaar van pbarney op het antwoord met de meeste stemmen: Dit kopieert de MD5 hash van welk bestand dan ook dat naar het batchbestand wordt gesleept naar het klembord:
@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
Om er een contextmenu-item van te maken:
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\""
Dit is slechts een cmd-shell-script dat gebruik maakt van tedr2’s antwoord maar de externe uitvoerlijnen en -spaties afsnijdt:
:: 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
De uitvoer kan desgewenst worden omgeleid naar een bestand:
@echo %str% > %3
bijv.
sys> \dev\cmd\hash.cmd MyApp.dll SHA1
8ae6ac1e90ccee52cee5c8bf5c2445d6a92c0d4f
``` &001
MD5 Contextmenu ](http://www.vonwangelin.com/md5/) doet precies dit. Het voegt een * MD5 ** optie toe aan het contextmenu van bestanden:
Het zegt dat het compatibel is met Windows 95, 98, ME, NT, 2000 en XP, hoewel het voor mij perfect werkt op Windows 7. Het is een kleine download (238 KB) en bevat alles wat je nodig hebt.
Cygwin (http://cygwin.org) bevat een hulpprogramma md5sum.exe
dat moet doen wat je wilt.
Ik gebruik checksum command-line utility.
md5
, sha1
, sha256
en sha512
. Gebruik:
controlesom [-t=sha1|sha256|sha512|md5] [-c=handtekening] [-f=]bestandspad
-?
, --help
, -h
Drukt de opties uit. -f
, --file=VALUE
Bestandsnaam. -t
, --type
, --hashtype=VALUE
Hashtype Defaults to md5
. -c
, --check=VALUE
Optioneel: controleer - de handtekening die u wilt controleren. Niet hoofdlettergevoelig.
# 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..
Zoiets als dit: (http://www.nullriver.com/products/winmd5sum). Deze is ook leuk: sendtoMD5 - klik met de rechtermuisknop, stuur naar …, en je krijgt het resultaat.
Dit is geen ingebouwd hulpprogramma, maar het is een zeer goede optie http://checksumcompare.sanktuaire.com
U zou checksum kunnen vergelijken per bestand en/of samenvatting als twee mappen verschillen of identiek zijn.
U kunt MD5sums voor Windows gebruiken, een download van slechts 28 KB Cygwin kan overkill zijn als u alleen maar MD5-hashes wilt berekenen).
De eenvoudigste manier om het te gebruiken is om Explorer te gebruiken om bestanden op md5sums.exe te slepen om hun MD5-hashes te verkrijgen.
Het juiste antwoord is natuurlijk, ja, CertUtil (zie tedr2’s antwoord ).
Maar ik zal de gratis File Checksum Verifier van Penteract toevoegen, die, denk ik, een van de meest gebruiksvriendelijke programma’s is. (Disclaimer: Ik ben aangesloten bij Penteract.)
Enkele van de voordelen:
Om de integriteit van dit programma te controleren (tegen man-in-the-middle aanvallen ) - downloadt het via een beveiligde verbinding.
Plus: gratis, offline (zodat u uw bestanden niet hoeft te uploaden), gebruiksvriendelijk (sleep een bestand naar binnen en krijg het resultaat), start vanuit het startmenu (u hoeft niet meer te zoeken naar de gedownloade executable wanneer u deze over een jaar wilt gebruiken), en ondersteunt MD5, SHA1, SHA256, enz.
HashTab 3.0 is een gratis shell-extensie die vele checksums berekent, waaronder MD5. Het is geïntegreerd als een nieuw tabblad in de File Properties.
U kunt msys2 proberen, het is hier .
Typ gewoon (algoritme)som. (algoritme) is het hash-algoritme dat u wilt gebruiken, bijvoorbeeld md5, sha1, sha256 …
In tegenstelling tot Cygwin is deze tool draagbaar, u hoeft alleen maar het .zip-bestand te downloaden en uit te pakken waar u maar wilt. Je kunt het gebruiken met een simpele klik (msys2.exe).
Hop deze tool zal je helpen.
Nou, ik heb een programma gemaakt om wat hashes uit een bestand te berekenen. Ik hoop dat het je helpt.
Wat doet dit? Het berekent de SHA-1 hash, SHA-384 hash, MD5 hash en SHA-256 hash. Nou, dat is het wel zo'n beetje :)
Voor een oplossing die werkt onder Windows of in een andere omgeving, gebruikt u Python.
installeer Python – een Windows installer is beschikbaar op https://www.python.org/downloads/
download een geteste cksum
-implementatie, bijv. http://pastebin.com/raw.php?i=cKATyGLb ](http://pastebin.com/raw.php?i=cKATyGLb) – sla de inhoud hiervan op, c:\cksum.py
of waar u maar wilt,
en voer vervolgens een controlesom uit:
python c:\cksum.py INPUTFILE
Niet zo snel als een gecompileerd hulpprogramma, maar wel compatibel met Unix cksum
en overal te gebruiken.