¿Cómo puedes saber si el fichero se ha descargado correctamente? ¿Cómo sabes si no ha sido manipulado ni se le ha inyectado malware?

Muchas veces cuando descargamos algún programa desde la red, se nos indica un código (hash) correspondiente al fichero que vamos a descargar. Éste sirve para comprobar que el fichero que hemos descargado es correcto y no ha sido manipulado.

¿Hash? ¿Qué es un hash?

Antes de nada, vamos a ver unos conceptos básicos:

  • ¿Qué es una función hash? Es una función o fórmula matemática que convierte la entrada en otra cosa de longitud fija y que suele tener ciertas propiedades (es más pequeña, se calcula rápidamente, es uniforme, determinista, etc.1
  • ¿Qué es un hash? Es la salida o el resultado de aplicar la función hash.
  • ¿No te ha quedado claro? Vamos a ver un ejemplo. Dirígete a la web passwordsgenerator y empieza a escribir. En la zona de abajo verás un código que va cambiando según escribes. Eso es el hash. La web aplica una función hash, llamada MD5, que convierte el texto que introduces en el código o hash que ves abajo.
  • ¿Qué usos tiene los hashes? Muchos…los hashes se pueden utilizar para encontrar ficheros duplicados, para proteger tus datos con criptografía, firma digital, para organizar ficheros, para realizar búsquedas más rápidas…

Visto esto, vamos a ver cómo saber el hash de un fichero determinado, tenemos varias opciones:

  1. Sin instalar nada: certUtil por línea de comandos de Windows
  2. Instalando el programa 7-Zip
  3. Instalando HashCheck
  4. Online con onlinemd5.com

1. Sin instalar nada

El comando CertUtil viene ya instalado en Windows y sirve para generar hashes con los algoritmos: MD2, MD4, MD5, SHA1, SHA256, SHA384 y SHA512. El único inconveniente es que es puede ser un poco más engorroso de usar, ya que se utiliza mediante comandos.

Para usarlo hay que escribir:

certUtil -hashfile [ruta&fichero] [AlgoritmoHash]

Por ejemplo, si quisiese calcular el hash MD5 del fichero C:\TEMP\fichero-prueba.txt ejecutaría:

CertUtil -hashfile C:\TEMP\fichero-prueba.txt MD5

como-checkear-integridad-fichero-windows-sin-instalar

Si quieres que tenga el mismo formato que el comando cksum de GNU/Linux, podemos ejecutar lo siguiente en la PowerShell:

$(CertUtil -hashfile C:\TEMP\fichero-prueba.txt MD5)[1] -replace " ",""

2. Instalando 7-Zip

Las nuevas versiones de 7-Zip (programa para comprimir y descomprimir ficheros, parecido a Winrar) incorporan una función muy útil para calcular el hash de los ficheros.

Para utilizarla, solo hemos de pulsar con el botón derecho y seleccionas CRC SHA y en el menú desplegable, elegir el algoritmo que queramos (CRC-32, CRC-64, SHA-1, SHA-256). Eso sí, no cuenta con MD5.

calcular-hash-7zip

Hash con 7zip

3. Instalando HashCheck

HashCheck puede resultar muy útil ya que permite ver diferentes hashes directamente desde el menú de propiedades del objeto.

hashcheck-calcular-hash

HashCheck: ventana Checksums

Para descargarlo ve a la página oficial. Para usarlo solo hay que instalarlo y posteriormente pinchar con el botón derecho sobre el fichero o carpeta sobr el que queramos conocer los hashes; y pinchar en Propiedades > Checksum.

Otro programa muy parecido es HashTab. Funcionan igual de bien, aunque a mi me gusta un poco más HashCheck

calcular-hash-con-hashtab

HashTab

4. Online con onlinemd5.com

Si quieremos comprobar la integridad de ficheros “pequeños” en la web OnlineMD5 nos permiten calcular el hash en MD5 de ficheros de hasta 4 Gb.

calcular-hash-online

OnlineMD5

OnlineMD5 permiten

Referencias:

  1. https://es.wikipedia.org/wiki/Funci%C3%B3n_hash

Publicidad