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

Existe um utilitário de checksum integrado no Windows 7?

Existe um utilitário de checksum/hash integrado no Windows 7?

Antwoorden (26)

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

CertUtil é um utilitário Windows pré-instalado que pode ser utilizado para gerar checksums de hash:

certUtil -hashfile pathToFileToCheck [HashAlgorithm]

HashAlgorithm choices: MD2 MD4 MD5 SHA1 SHA256 SHA384 SHA512

Assim, por exemplo, o seguinte gera um checksum MD5 para o ficheiro C:\TEMP\MyDataFile.img:

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

Para obter resultados semelhantes aos sistemas *Nix, pode adicionar alguma magia PowerShell:

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

Existe um utilitário integrado, como especificado em esta outra resposta .

Pode, no entanto, desejar utilizar esta aplicação gratuita chamada HashTab que se integra perfeitamente com o Windows Explorer, registando um… bem, um separador no diálogo de propriedades dos ficheiros. É bastante doce.

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

Estou a utilizar HashCheck última versão ) que se integra como uma página de propriedade para ficheiros e inclui um menu de contexto para comparar com ficheiros de hash check (SFV).

É gratuito e a fonte está disponível.

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

Existe o utilitário FCIV da Microsoft, o Microsoft File Checksum Integrity Verifier download link ).

A ferramenta File Checksum Integrity Verifier da Microsoft é um utilitário de linha de comando não suportado que computa hashes criptográficos MD5 ou SHA1 para ficheiros.

Não mostra o Windows 7 nos requisitos do sistema mas acabei de o usar no Windows 8 e funcionou.

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

PowerShell versão 4 e superior inclui o Get-FileHash cmdlet.

powershell get-filehash -algorithm md5 <file_to_check>

Use doskey para fazer um alias persistente que seja mais fácil de lembrar.

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

Aqui está um que já usei antes que se integra bem com o diálogo “Propriedades” do Explorer: Propriedades de Verão . É fonte aberta , e uma versão x64 também está disponível.

Eu também gosto do FileAlyzer do Safer Networking, que também oferece funcionalidades adicionais. Mas só para checksums, o Summer Properties é leve e faz o trabalho.

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

Encontrei este 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
            }
        }
    }
}

Fonte: Cálculo do SHA1 na PowerShell

Alavanca .NET que presumo que tenha instalado

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

Estou a adicionar isto aqui apenas porque não vi nenhum exemplo de powershell totalmente funcional, pronto para copiar-colar:

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 Actualização:

A saída do certutil parece ter mudado desde o Windows 8, por isso o meu antigo filtro para isolar o hash já não funciona. Os espaços estranhos também desapareceram - uma coisa a menos com que se preocupar quando se escreve scripts. Aqui está a nova demonstração de copy-paste-able:

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

Para tornar isto mais resistente contra quebras de mais uma futura mudança no certutil, devemos procurar linhas com caracteres não hexadecimais para filtrar: [^0-9a-zA-Z]. Isso também deve torná-lo mais seguro para outros locais e línguas.

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

Porque é que o actual anti-hex regex é tão estranho? Veja esta pergunta para saber como os intervalos regex em findstr não funcionam como deveriam. Incluí um carácter de espaço extra para compatibilidade com versões anteriores do certutil, mas é opcional.

Note que o padrão do powerhell Get-FileHash é SHA256, enquanto que o certutil ainda tem o padrão SHA1. Por isso, especifique o seu algoritmo explicitamente quando necessário. Pode verificar rapidamente as opções disponíveis desta forma:

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 _. Pode calcular MD5 e SHA-1 valores de hash.

Download, extrair os ficheiros, depois abrir um prompt de comando, ir para o caminho extraído e depois digitar o seguinte comando:

fciv -md5 filepath\filename.extension

Por exemplo:

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

Infelizmente, não que eu saiba, mas a suite Sysinternals da Microsoft inclui uma boa ferramenta chamada * sigcheck ***.

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

Um ficheiro de lote baseado no comentário do pbarney à resposta com mais votos: Isto copia o hash MD5 de qualquer ficheiro arrastado para o ficheiro de lote para a área de transferência:

@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

Para fazer dele um item de menu de contexto:

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

Este é apenas um script de shell cmd que usa tedr2’s answer mas retira as linhas e espaços de saída estranhos:

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

A saída pode ser redireccionada para um ficheiro se necessário:

@echo %str% > %3

e.g.

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

O Menu Contexto MD5 faz exactamente isto. Adiciona uma opção * MD5 *** ao menu de contexto de ficheiros:

MD5 Context Menu é uma extensão de shell freeware para Windows que mostra a soma hash MD5 do ficheiro seleccionado.

Diz ser compatível com Windows 95, 98, ME, NT, 2000, e XP, embora funcione perfeitamente no Windows 7. É um pequeno download (238 KB) e inclui tudo o que você precisa.

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

O Cygwin contém um utilitário md5sum.exe que deve fazer o que você quer.

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

1. checksum

Uso checksum utilitário de linha de comando.

Utilização:

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


2. Argumentos da linha de comando

  • -?, --help, -h Imprime as opções.
  • -f, --file=VALUE Nome do ficheiro.
  • -t, --type, --hashtype=VALUE, md5 Hashtype Defaults to -c.
  • --check=VALUE, &007 Opcional: verifique - a assinatura que pretende verificar. Não sensível a maiúsculas e minúsculas.

3. Exemplos de utilização

# 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

Algo parecido com isto: winmd5sum . Este também é bonito: sendtoMD5 - clique direito, envie para …, e obtém o resultado.

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

Esta não é uma utilidade integrada, mas é uma opção muito boa http://checksumcompare.sanktuaire.com

Pode comparar soma de verificação por ficheiro e/ou resumos se duas pastas diferirem ou forem idênticas.

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

Você pode usar MD5sums para Windows , um download de apenas 28 KB Cygwin pode ser exagerado se tudo que você quiser fazer é computar hashes MD5).

A maneira mais fácil de usar é usar o Explorer para arrastar e soltar arquivos no md5sums.exe para obter seus hashes MD5.

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

A resposta correcta é, claro, sim, CertUtil (ver resposta de tedr2 ).

Mas vou acrescentar o File Checksum Verifier gratuito da Penteract que, penso eu, é um dos programas mais fáceis de utilizar. (Aviso: Sou afiliado da Penteract.)

Algumas das suas vantagens:

  • compara os hashes calculados e esperados para si.
  • Minimalístico - sem item no contexto dos ficheiros - menus, sem separador extra nas propriedades dos ficheiros.

Para verificar a integridade deste programa (contra man-in-the-middle attacks ) - faz o download através de uma ligação segura.

Plus: gratuito, offline (para que não tenha de carregar os seus ficheiros), de fácil utilização (arraste um ficheiro e obtenha o resultado), lança a partir do menu inicial (não necessita de procurar o executável descarregado quando o quiser utilizar daqui a um ano), e suporta MD5, SHA1, SHA256, etc.

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

O HashTab 3.0 é uma extensão livre que calcula muitos checksums, incluindo o MD5. Está integrado como um novo separador nas Propriedades do Ficheiro.

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

Você pode tentar msys2, é aqui .

Basta digitar (algoritmo)soma. (algoritmo) é o algoritmo hash que você quer usar, por exemplo, md5, sha1, sha256 …

Ao contrário do Cygwin, esta ferramenta é portátil, você só precisa fazer o download do arquivo .zip e extrair em qualquer lugar que você quiser. Pode utilizá-lo com um simples clique(msys2.exe).

Hop esta ferramenta irá ajudá-lo.

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

Bem, eu fiz um programa para calcular alguns hashes a partir de um arquivo. Espero que isso o ajude.

O que é que isto faz? Calcula o SHA-1 hash, SHA-384 hash, MD5 hash e SHA-256 hash. Bem, é mais ou menos isso :)

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

Existem por aí cerca de 100 ferramentas de terceiros. Eu uso MD5Hash. Para downloads com arquivos sfv, basta usar TeraCopy para verificar os hashes.

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

Para uma solução que funcione no Windows ou em qualquer outro ambiente, use Python.

  1. instale o Python – um instalador Windows é fornecido em https://www.python.org/downloads/

  2. faça o download de uma implementação testada do cksum, por exemplo http://pastebin.com/raw.php?i=cKATyGLb – salve o conteúdo deste para dizer, c:\cksum.py ou onde achar conveniente

Então para executar um checksum:

python c:\cksum.py INPUTFILE

Não tão rápido como um utilitário compilado, mas compatível com Unix cksum e roda em qualquer lugar.

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

Gosto de digestIT , embora pareça ser bastante antigo e talvez não seja mantido.