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

Esiste un'utilità integrata di checksum su Windows 7?

Esiste un'utilità integrata di checksum/hash su Windows 7?

Risposte (26)

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

CertUtil è un'utilità Windows preinstallata che può essere usata per generare hash checksum:

certUtil -hashfile pathToFileToCheck [HashAlgorithm]
``` ```
CertUtil -hashfile C:\TEMP\MyDataFile.img MD5

HashAlgorithm choices: MD2 MD4 MD5 MD5 SHA1 SHA256 SHA384 SHA512

Quindi, per esempio, quanto segue genera un checksum MD5 per il file C:\TEMP\MyDataFile.img:

$(CertUtil -hashfile C:\TEMP\MyDataFile.img MD5)[1] -replace " ",""

Per ottenere un output simile a quello dei sistemi *Nix si può aggiungere qualche magia PowerShell:

&001

201
201
201
2011-02-14 18:42:47 +0000

C'è un'utilità integrata, come specificato in questa altra risposta .

Si può, tuttavia, desiderare di utilizzare questa applicazione freeware chiamata HashTab che si integra perfettamente con Windows Explorer registrando una… beh, una scheda nella finestra di dialogo delle proprietà dei file. È piuttosto dolce.

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

Sto usando HashCheck ultima versione ) che si integra come pagina di proprietà per i file e include un menu contestuale da confrontare con i file di controllo dell'hash check (SFV).

E’ gratuito, e la fonte è disponibile.

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

C'è l'utilità FCIV di Microsoft, il Microsoft File Checksum Integrity Verifier link download ).

Lo strumento Microsoft File Checksum Integrity Verifier è un'utilità a riga di comando non supportata che calcola gli hash crittografici MD5 o SHA1 per i file.

Non mostra Windows 7 nei requisiti di sistema ma l'ho appena usato in Windows 8 e ha funzionato.

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

PowerShell versione 4 e oltre include il Get-FileHash cmdlet.

powershell get-filehash -algorithm md5 <file_to_check>
``` ```
doskey sha1sum=powershell get-filehash -algorithm sha1 "$1"
doskey md5sum=powershell get-filehash -algorithm md5 "$1"

Utilizzare doskey per creare un alias persistente più facile da ricordare.

&001

40
40
40
2016-01-11 21:31:41 +0000
24
24
24
2009-12-30 00:55:29 +0000

Ecco uno che ho usato in precedenza che si integra bene con il dialogo “Proprietà” di Explorer: Proprietà estive . E’ sorgente aperto , ed è disponibile anche una versione x64.

Mi piace anche FileAlyzer di Safer Networking, che fornisce anche funzioni aggiuntive. Ma solo per i checksum, Summer Properties è leggero e fa il suo lavoro.

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

Ho trovato questo script 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
            }
        }
    }
}

Source: Calcolando SHA1 in PowerShell

Esso fa leva su .NET che presumo abbiate installato

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

Aggiungo questo qui solo perché non ho visto nessun esempio di powershell completamente funzionante, pronto per il copia-incolla:

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

L'uscita certutil sembra essere cambiata rispetto a Windows 8, quindi il mio vecchio filtro per isolare l'hash non funziona più. Anche gli spazi estranei sono andati via - una cosa in meno di cui preoccuparsi quando si fa scripting. Ecco la nuova demo copia-incolla:

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

Per rendere questo più resistente contro la rottura dell'ennesimo futuro cambiamento di certutil, dovremmo cercare linee con caratteri non esagonali per filtrare: [^0-9a-zA-Z]. Questo dovrebbe renderlo più sicuro anche per altri locali e lingue.

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
``` &001 


Perché è così strano l'anti-hex regex vero e proprio? Vedi [ questa domanda ](https://stackoverflow.com/questions/2635740/why-does-findstr-not-handle-case-properly-in-some-circumstances) per sapere come le gamme regex in `findstr` non funzionano come dovrebbero. Ho incluso un carattere di spazio extra per la retrocompatibilità con le vecchie versioni di `certutil`, ma è opzionale. 


Si noti che l'impostazione predefinita di powerhell `Get-FileHash` è SHA256, mentre `certutil` è ancora impostato su SHA1. Specificare quindi esplicitamente il proprio algoritmo dove necessario. È possibile verificare rapidamente le opzioni disponibili come questa: 


&001
8
8
8
2013-03-17 20:26:52 +0000

Microsoft File Checksum Integrity Verifier _. Può calcolare MD5 e SHA-1 valori hash.

Scaricare, estrarre i file, quindi aprire un prompt di comandi, andare al percorso estratto e poi digitare il seguente comando:

fciv -md5 filepath\filename.extension

Per esempio:

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

Purtroppo non che io sappia, ma la suite Sysinternals di Microsoft include un simpatico strumento chiamato * sigcheck **.

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

Un file batch basato sul commento di pbarney alla risposta con il maggior numero di voti: Questo copia l'hash MD5 di qualsiasi file trascinato nel file batch negli appunti:

@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\""

Per farne una voce di menu contestuale invece:

&001

4
4
4
2017-09-02 13:47:32 +0000

Questo è solo uno script di shell cmd che usa risposta di tedr2 , ma elimina le linee e gli spazi di uscita estranei:

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

L'uscita può essere reindirizzata ad un file se necessario:

@echo %str% > %3
``` ```
sys> \dev\cmd\hash.cmd MyApp.dll SHA1
8ae6ac1e90ccee52cee5c8bf5c2445d6a92c0d4f

, ad esempio

&001

4
4
4
2009-12-30 04:08:39 +0000

MD5 Context Menu fa esattamente questo. Aggiunge un'opzione * MD5 ** al menu contestuale dei file:

MD5 Context Menu è un'estensione di shell freeware per Windows che visualizza la somma di hash MD5 del file selezionato.

Dice che è compatibile con Windows 95, 98, ME, NT, 2000, e XP, anche se per me funziona perfettamente bene su Windows 7. È un piccolo download (238 KB) e include tutto il necessario.

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

Cygwin contiene un'utilità md5sum.exe che dovrebbe fare quello che si vuole.

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

1. checksum

Uso checksum utilità a riga di comando.

Uso:

checksum [-t=sha1|sha256|sha512|md5] [-c=f=firma] [-f=]filepath


2. Argomenti a riga di comando

  • --help, -h, -f, --file=VALUE Stampa le opzioni.
  • -t, --type Nome del file.
  • --hashtype=VALUE - md5, -c, --check=VALUE Hashtype Defaults to &007.
  • &007 - &007, &007 Optional: check - la firma che si desidera controllare. Non sensibile alle maiuscole.

3. Esempi di utilizzo

# 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

Qualcosa del genere: winmd5sum . Anche questo è bello: sendtoMD5 - click destro, invia a …, e ti fa ottenere il risultato.

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

Questa non è un'utilità incorporata, ma è un'ottima opzione http://checksumcompare.sanktuaire.com &003

Si può confrontare il checksum per file e/o sommari se due cartelle differiscono o sono identiche.

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

È possibile utilizzare MD5sums per Windows , un download di soli 28 KB Cygwin potrebbe essere eccessivo se tutto quello che si vuole fare è calcolare gli hash MD5).

Il modo più semplice per usarlo è usare Explorer per trascinare e rilasciare i file su md5sums.exe per ottenere i loro hash MD5.

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

La risposta corretta è ovviamente sì, CertUtil (vedi la risposta di tedr2 ).

Ma aggiungerò il programma gratuito di Penteract File Checksum Verifier che, credo, è uno dei programmi più facili da usare. (Disclaimer: sono affiliato a Penteract.)

Alcuni dei suoi vantaggi:

  • Confronta gli hash calcolati e previsti per voi.
  • Minimalistico - nessun elemento nei menu contestuali dei file, nessuna scheda extra sulle proprietà dei file.

Per verificare l'integrità di questo programma (contro gli attacchi man-in-the-middle ) - si scarica su una connessione sicura.

Plus: gratuito, offline (in modo da non dover caricare i file), facile da usare (trascinare un file e ottenere il risultato), si lancia dal menu di avvio (non è necessario cercare l'eseguibile scaricato quando si vuole usarlo tra un anno), e supporta MD5, SHA1, SHA256, ecc.

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

HashTab 3.0** è un'estensione shell gratuita che calcola molti checksum, incluso MD5. È integrata come nuova scheda nelle Proprietà del file.

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

Si può provare msys2, è qui .

Solo digitare (algoritmo)somma. (algoritmo) è l'algoritmo di hash che si vuole usare ad esempio md5, sha1, sha256 …

A differenza di Cygwin, questo strumento è portatile, basta scaricare il file .zip ed estrarlo dove si vuole. È possibile utilizzarlo con un semplice click(msys2.exe).

Hop questo strumento vi aiuterà.

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

Bene, ho fatto un programma per calcolare alcuni hash da un file. Spero che vi sia d'aiuto.

Cosa fa questo? Calcola l'hash SHA-1 , l'hash SHA-384, MD5 e l'hash SHA-256 . Bene, questo è tutto :)

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

Ci sono circa 100 strumenti di terze parti là fuori. Io uso MD5Hash. Per i download con file sfv, basta usare TeraCopy per verificare gli hash.

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

Per una soluzione che funziona su Windows o su qualsiasi altro ambiente, utilizzare Python.

  1. installare Python – un programma di installazione di Windows è fornito su https://www.python.org/downloads/ (http://pastebin.com/raw.php?i=cKATyGLb)

  2. scaricare un'implementazione testata cksum, ad esempio [ http://pastebin.com/raw.php?i=cKATyGLb ]&003 – salva il contenuto di questa per dire, c:\cksum.py o ovunque trovi conveniente

Poi per eseguire un checksum:

python c:\cksum.py INPUTFILE

Non è veloce come un programma di utilità compilato, ma è compatibile con Unix cksum e funziona ovunque.

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

Mi piace digestIT , anche se sembra essere abbastanza vecchio e forse non mantenuto.