¿Cuál es la mejor manera de calcular una suma de comprobación para un archivo que está en mi máquina?

81

Estoy en una máquina con Windows y quiero ejecutar una suma de comprobación en la distribución MySQL que acabo de recibir. Parece que hay productos para descargar, una herramienta de Microsoft no compatible y probablemente otras opciones. Me pregunto si existe un consenso sobre la mejor herramienta a utilizar. Esta puede ser una pregunta realmente fácil, nunca antes había ejecutado una rutina de suma de comprobación.

Bialecki
fuente
1
También se discuten en superusuario: superuser.com/questions/245775/...

Respuestas:

16

Cualquier MD5 producirá una buena suma de comprobación para verificar el archivo. Cualquiera de los archivos enumerados en la parte inferior de esta página funcionará bien. http://en.wikipedia.org/wiki/Md5sum

Nick Berardi
fuente
6
Esta respuesta ya no es un buen consejo. MD5 es enormemente inseguro hoy en día. Usar MD5 para validar archivos descargados no es seguro.
antiduh
22
@antiduh Al ver que obtiene el hash del mismo lugar desde el que lo descarga, su argumento es discutible. Estás limitado por el hash proporcionado por el sitio web.
JJ
7
Tenga en cuenta que el usuario solo quiere verificar que el archivo descargado no esté dañado. Si echa un vistazo a https://en.wikipedia.org/wiki/MD5#Security , encontrará esta frase clave en el párrafo inicial: "Aunque MD5 se diseñó inicialmente para usarse como una función de hash criptográfica, se ha encontrado que adolece de amplias vulnerabilidades. Todavía se puede utilizar como suma de comprobación para verificar la integridad de los datos, pero solo contra daños no intencionales ".
Kosta Tenedios
2
@JJ Muchos sitios web oficiales hacen que descargues el binario real de otro dominio, por lo que el argumento es válido. Puede descargar un VLC modificado desde un espejo malicioso a través del sitio oficial, que será detectado por una suma de comprobación.
Hola
2
@antiduh Pregunté no porque sea demasiado vago para buscar, sino porque RTFM nunca es una 'respuesta' apropiada en Stackoverflow (que es lo que implica su respuesta).
java-addict301
234

El CertUtil es una utilidad de Windows pre-instalado, que puede ser utilizado para generar sumas de comprobación de hash:

CertUtil -hashfile pathToFileToCheck [HashAlgorithm]

HashAlgorithm opciones: MD2 MD4 MD5 SHA1 SHA256 SHA384 SHA512

Entonces, por ejemplo, lo siguiente genera una suma de verificació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, puede agregar algo de magia PS:

$(CertUtil -hashfile C:\TEMP\MyDataFile.img MD5)[1] -replace " ",""
Laisvis Lingvevicius
fuente
1
Esta es una opción mucho más fácil que FCIV, dado que está preinstalado.
CJBS
1
Nota: esto no viene preinstalado en Win XP, pero dado que ese sistema operativo ahora está obsoleto, eso no debería ser un problema.
CJBS
2
@Laisvis: con tu explicación, pasé de 0 a listo en aproximadamente 2 minutos. Vine a esta página buscando cómo hacerlo. Tu respuesta fue simple y perfecta.
Iceberg
2
+1 para recomendar la versión preinstalada. Qué mejor manera de garantizar un software seguro para verificar la seguridad y ahorrar pasos adicionales de búsqueda, descarga, instalación y validación.
Zack Jannsen
1
¿Alguien puede decirme cómo verificar la suma de verificación del archivo para usar Hash generado por certUtil? línea de comando. ¿Sería eso solo usar la misma línea de comando para generar el Hash en el archivo (después de que el archivo se recibió en la máquina de destino)?
rvpals
25

Yo personalmente uso Cygwin , que pone toda la variedad de utilidades de Linux al alcance de mi mano: hay md5sumy todos los resúmenes criptográficos compatibles con OpenSSL . Alternativamente, también puede utilizar una distribución de Windows de OpenSSL (la versión "ligera" es sólo un instalador de 1 MB).

Zach Scrivena
fuente
3
Por solo verificar una suma de verificación, Cygwin parece un poco pesado. Especialmente porque hay 5KB ejecutables para verificar el MD5
Nick Berardi
3
Puede ser pesado, pero es una respuesta válida, particularmente cuando se considera que se trata de un programa Unixy (MySQL).
Adam Hawes
3
Para aquellos de nosotros que consideramos a Cygwin como una herramienta esencial, es una respuesta perfecta.
Zenexer
7
Vale la pena señalar que md5sum también viene con git bash (mingw)
Old Badman Gray
6

Fichas de suma de comprobación: http://code.kliu.org/hashcheck/

Esto me ha funcionado muy bien en Windows desde hace un tiempo. Permite copiar y pegar fácilmente sumas de comprobación. Tiene un cuadro para escribir / pegar sumas de verificación de páginas web y mostrar coincidencias o no coincidencias bastante bien.

Sqeaky
fuente
2
Esta pequeña y práctica utilidad es bastante discreta aquí. Primero, no tengo ninguna relación con el autor (es) --- ¡Creo que es una gran utilidad! Le permite generar un archivo hash de su elección desde el menú contextual en el Explorador de Windows para un solo archivo o un grupo de archivos. Más tarde, puede hacer doble clic en ese archivo hash para ejecutar automáticamente una verificación hash de esos archivos. Utilizo esto con frecuencia para generar un hash para archivos grandes que quiero copiar, luego copie el archivo hash con él y, en el destino, haga doble clic para verificar que sobrevivieron intactos.
Michael Sorens
1
Excelente solución, pero el enlace está desactualizado. El lugar más seguro para obtener este software ahora es github.com/gurnec/HashCheck
asachet
5

En MySQL.com, los MD5 se enumeran junto a cada archivo que puede descargar. Por ejemplo, MySQL "Windows Essentials" 5.1 es 528c89c37b3a6f0bd34480000a56c372 .

Puede descargar md5 (md5.exe), una herramienta de línea de comandos que calculará el MD5 de cualquier archivo que tenga localmente. MD5 es como cualquier otra función hash criptográfica , lo que significa que una determinada matriz de bytes siempre producirá el mismo hash. Eso significa que si su archivo zip MySQL descargado (o lo que sea) tiene el mismo MD5 que publica en su sitio, tiene exactamente el mismo archivo.

tonyz
fuente
3

Cuando trabajé con Windows, encontré una práctica herramienta de terceros HashTab. Muestra sumas de verificación MD5, SHA-1 en una de las pestañas de propiedades del archivo. http://implbits.com/products/hashtab/

jabalv
fuente
3

7-Zip se puede utilizar para generar hashes para archivos, carpetas de archivos y árboles de carpetas de archivos. 7-Zip ocupa poco espacio y es una utilidad de compresión muy útil. http://7-zip.org/

gridtrak
fuente
Si bien es cierto que 7-zip proporciona hash para todos los elementos enumerados anteriormente, carece de una forma de simplemente copiar y pegar sus resultados directamente. CertUtil, dado que es un programa CMD, proporciona la funcionalidad de copiar y pegar.
Jonathin
También es posible usar 7z.exe a través de CMD, por ejemplo, 7z.exe h -scrcSHA256 -- /path/to/your/file.txtproduce un hash sha256.
Elpy
2

Solo para agregar otra opción para los usuarios de Windows, Get-FileHashse puede usar el cmdlet de PowerShell ( https://technet.microsoft.com/en-us/library/dn520872.aspx ).

Uso de ejemplo: Get-FileHash MyImage.iso -Algorithm MD5

Si todo lo que buscas es solo el hash crudo, entonces: (Get-FileHash MyImage.iso -Algorithm MD5).Hash

Kosta Tenedios
fuente
2

Para calcular md5 de todos los archivos en el directorio actual en Windows 7

for %i in (*) DO CertUtil -hashfile %i MD5
Abey
fuente
1

La mejor utilidad para Windows es HashCheck que ahora está en GitHub. https://github.com/gurnec/HashCheck/releases/tag/v2.4.0

Instale HashCheck. Ahora haga clic derecho en el archivo -> Crear archivo de verificación. Creará un archivo file.extension.md5 con código MD5 en él.

Quiéralo.

djibe
fuente
0

Tenga en cuenta que las soluciones anteriores no le dirán si su instalación es correcta solo si su install.exe es correcto (puede confiar en que producirá una instalación correcta).

Necesitaría sumas MD5 para cada archivo / carpeta para probar si el código instalado se ha alterado después de que se completó la instalación.

WinMerg es útil para comparar dos instalaciones (quizás en dos máquinas diferentes) para ver si una ha sido cambiada o por qué una está rota.

Chris Nava
fuente
0

seguro que certutil es el mejor enfoque, pero existe la posibilidad de acceder a la máquina windows xp / 2003 sin el comando certutil.Aquí se puede usar el comando makecab, que tiene su propio algoritmo hash, aquí el fileinf.bat que generará información sobre el archivo, incluido la suma de comprobación.

npocmaka
fuente
0

Hashing es una aplicación independiente que realiza la familia MD5, SHA-1 y SHA-2. Construido sobre OpenSSL.

Lelo
fuente
0

En HPUX (hp UNIX)

Instale el paquete md5sum en su máquina UNIX, por ejemplo, si hay un archivo llamado a.txt

shell > md5sum a.txt
Rnsthota
fuente
-4

Simplemente use win32 Checksum api. MD5 es nativo en Win32.


fuente
2
¿Tiene un ejemplo de la API de Win32 que sea lo suficientemente pequeño para una respuesta SO y adecuado para quien pregunta?
Sqeaky