¿Hay una utilidad de suma de comprobación incorporada en Windows 7?
¿Hay una utilidad de suma de comprobación/hash incorporada en Windows 7?
(https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/certutil) es una utilidad pre-instalada de Windows que puede ser usada para generar sumas de control de hachís:
certUtil -hashfile pathToFileToCheck [HashAlgorithm]
HashAlgorithm choices: MD2 MD4 MD5 SHA1 SHA256 SHA384 SHA512
Por ejemplo, lo siguiente genera una suma de comprobación MD5 para el archivo C:\TEMP\MyDataFile.img
:
CertUtil -hashfile C:\TEMP\MyDataFile.img MD5
Para obtener una salida similar a los sistemas *Nix se puede añadir algo de magia de PowerShell:
$(CertUtil -hashfile C:\TEMP\MyDataFile.img MD5)[1] -replace " ",""
Hay una utilidad incorporada, como se especifica en esta otra respuesta .
Sin embargo, puede que quieras usar esta aplicación gratuita llamada HashTab que se integra perfectamente con el Explorador de Windows registrando una… bueno, una pestaña en el diálogo de propiedades de los archivos. Es bastante dulce.
Estoy usando HashCheck última versión ) que se integra como una página de propiedades para los archivos e incluye un menú de contexto para comparar con los archivos de comprobación de hash (SFV).
Es gratis, y la fuente está disponible.
Existe la utilidad FCIV de Microsoft, el Verificador de integridad de sumas de verificación de archivos de Microsoft enlace de descarga ).
La herramienta Verificador de integridad de sumas de verificación de archivos de Microsoft es una utilidad de línea de comandos no soportada que calcula los hashes criptográficos MD5 o SHA1 de los archivos.
No muestra Windows 7 en los requisitos del sistema pero lo acabo de usar en Windows 8 y funcionó.
La versión 4 y superior de PowerShell incluye el cmdlet Get-FileHash .
powershell get-filehash -algorithm md5 <file_to_check>
Usar doskey para hacer un alias persistente que sea más fácil de recordar.
doskey sha1sum=powershell get-filehash -algorithm sha1 "$1"
doskey md5sum=powershell get-filehash -algorithm md5 "$1"
Aquí hay uno que he usado antes que se integra muy bien con el diálogo de “Propiedades” del Explorador: Propiedades de verano. Es fuente abierta, y una versión x64 también está disponible.
También me gusta el FileAlyzer de Safer Networking, que también proporciona características adicionales. Pero sólo para las sumas de verificación, Propiedades del Verano es ligero y hace el trabajo.
Encontré este guión de 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
}
}
}
}
Fuente: Calculando SHA1 en PowerShell
Aprovecha el .NET que asumo que tiene instalado
Estoy añadiendo esto aquí sólo porque no vi ningún ejemplo de PowerShell que funcionara completamente, listo para copiar y pegar:
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:\>
La salida de certutil
parece haber cambiado desde Windows 8, por lo que mi antiguo filtro para aislar el hash ya no funciona. Los espacios extraños también han desaparecido, una cosa menos de la que preocuparse cuando se hace un script. Aquí está la nueva demostración de copiar y pegar:
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 que esto sea más resistente a la rotura por otro cambio futuro en certutil
, deberíamos buscar líneas con caracteres no hexadecimales para filtrar: [^0-9a-zA-Z]
. Eso también debería hacerlo más seguro para otras localidades e idiomas.
C:\>CertUtil -hashfile "C:\windows\fonts\arial.ttf" | findstr -vrc:"[^0123-9aAb-Cd-EfF]"
12c542ef8c99cf3895ad069d31843a5210857fdc
¿Por qué es tan raro ese regex antihex real? Vea esta pregunta para aprender cómo los rangos de regex en findstr
no funcionan como deberían. Incluí un espacio extra para la compatibilidad con versiones anteriores de certutil
, pero es opcional.
Ten en cuenta que el valor por defecto de Get-FileHash
es SHA256, mientras que certutil
sigue siendo SHA1. Así que especifica tu algoritmo explícitamente donde sea necesario. Puedes comprobar rápidamente las opciones disponibles así:
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
Verificador de integridad de la suma de verificación de archivos de Microsoft_. Puede calcular MD5 y SHA-1 valores hash.
Descargar, extraer los archivos, luego abrir un símbolo del sistema, ir a la ruta extraída y luego escribir el siguiente comando:
fciv -md5 filepath\filename.extension
Por ejemplo:
fciv -md5 d:\programs\setup.exe
Desafortunadamente, no que yo sepa, pero la suite de Microsoft Sysinternals incluye una linda herramienta llamada * sigcheck **.
Un archivo por lotes basado en el comentario de Pbarney a la respuesta con más votos: Esto copia el hash MD5 de cualquier archivo que se arrastre al archivo por lotes al portapapeles:
@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 que sea un elemento del menú contextual en su lugar:
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\""
Esto es sólo un script de shell cmd que usa respuesta de Tedr2 pero quita las líneas y espacios de salida extraños:
:: 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
La salida puede ser redirigida a un archivo si es necesario:
@echo %str% > %3
e.g.
sys> \dev\cmd\hash.cmd MyApp.dll SHA1
8ae6ac1e90ccee52cee5c8bf5c2445d6a92c0d4f
El MD5 Menú Contextual hace exactamente esto. Añade una opción * MD5 ** al menú contextual de los archivos:
MD5 Context Menu es una extensión de shell gratuita para Windows que muestra la suma hash MD5 del archivo seleccionado.
Dice que es compatible con Windows 95, 98, ME, NT, 2000, y XP, aunque me funciona perfectamente en Windows 7. Es una pequeña descarga (238 KB) e incluye todo lo que necesitas.
(http://cygwin.org) contiene una utilidad md5sum.exe
que debería hacer lo que usted quiere.
Uso suma de verificación utilidad de línea de comandos.
md5
, sha1
, sha256
y sha512
. Uso:
suma de comprobación [-t=sha1|sha256|sha512|md5] [-c=firma] [-f=]ruta de archivo
-?
, --help
, -h
Imprime las opciones. -f
, --file=VALUE
Nombre de archivo. -t
, --type
, --hashtype=VALUE
Hashtype Predeterminado a md5
. -c
, --check=VALUE
Opcional: comprobar - la firma que quiere comprobar. No distingue entre mayúsculas y minúsculas. # 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..
Esta no es una utilidad incorporada, pero es una muy buena opción http://checksumcompare.sanktuaire.com
Podrías comparar la suma de comprobación por archivo y/o resúmenes si dos carpetas difieren o son idénticas.
Puedes usar MD5sums para Windows , una descarga de sólo 28 KB Cygwin puede ser exagerada si todo lo que quieres es computar los hashes MD5).
La forma más fácil de usarlo es usar el Explorador para arrastrar y soltar archivos en md5sums.exe para obtener sus hashes MD5.
La respuesta correcta es por supuesto, sí, CertUtil (ver respuesta de tedr2 ).
Pero agregaré el Verificador de sumas de verificación de archivos de Penteract que, creo, es uno de los programas más fáciles de usar. (Descargo de responsabilidad: Estoy afiliado a Penteract.)
Algunas de sus ventajas:
Para verificar la integridad de este programa (contra ataques de hombre en el medio ) - se descarga a través de una conexión segura.
Plus: gratuito, sin conexión (por lo que no tienes que subir tus archivos), fácil de usar (arrastra un archivo y obtén el resultado), se lanza desde el menú de inicio (no necesitas buscar el ejecutable descargado cuando quieras usarlo dentro de un año), y soporta MD5, SHA1, SHA256, etc.
HashTab 3.0 es una extensión gratuita del shell que calcula muchas sumas de control, incluyendo MD5. Está integrada como una nueva pestaña en las Propiedades de los Archivos.
Puedes probar con msys2, es aquí .
Sólo escribe (algoritmo)suma. (algoritmo) es el algoritmo hash que quieres usar, por ejemplo md5, sha1, sha256 …
A diferencia de Cygwin, esta herramienta es portátil, sólo tienes que descargar el archivo .zip y extraerlo en cualquier lugar que desees. Puedes usarlo con un simple click(msys2.exe).
Salta esta herramienta te ayudará.
Bueno, he hecho un programa para calcular algunos hashes de un archivo. Espero que te ayude.
¿Qué hace esto? Calcula el hash de SHA-1 , el hash de SHA-384, el hash de MD5 y el hash de SHA-256 . Bueno, eso es todo :)
Para una solución que funcione en Windows o en cualquier otro entorno, use Python.
instale Python – un instalador de Windows se proporciona en https://www.python.org/downloads/
descargue una implementación cksum
probada, por ejemplo. http://pastebin.com/raw.php?i=cKATyGLb – guarda el contenido de esto para decir, c:\cksum.py
o donde te parezca conveniente
Entonces para realizar una suma de comprobación:
python c:\cksum.py INPUTFILE
No tan rápido como una utilidad compilada, pero compatible con Unix cksum
y funciona en cualquier lugar.