Saltar al contenido

¿Cómo calcular el hash de un archivo o ejecutable?

como-calcular-el-hash-de-un-archivo-o-ejecutable

Es probable que hayas visto con anterioridad como junto a programas o archivos descargables desde internet aparecen ciertos términos como hash, MD5, SHA o similares. Hoy veremos para qué sirve un hash y como calcular el hash de un archivo o programa descargado de internet.

Si necesitas calcular el hash de un disco completo puedes revisar este post.

¿Qué es un hash?

Las funciones hash son frecuentemente utilizadas para garantizar la integridad de un archivo o ejecutable, garantizando que el mismo no ha sido alterado desde que fué creado, esto es, desde la fuente original.

Podemos encontrar hashes que se utilizan en situaciones muy diversas, desde firmas digitales a fingerprinting (sirve a modo de resúmen con valor de integridad) o para contabilizar checksums o sumas de verificación, estas últimas destinadas a comprobar que un archivo es el que dice ser.

Un hash es un conjunto de instrucciones utilizada por ordenadores para manipular datos. Muchas funciones hash están diseñadas para producir un resultado fijo, sin importar el tamaño de los datos de entrada.

Algunos desarrolladores de software publican en sus sitios de descarga los valores hash asociados a sus paquetes de software, de manera que quien los descarga sabe que se trata de una versión genuina del mismo. Así podemos descartar de antemano que un atacante los haya manipulado en tránsito.

Diferentes tipos de hashes

Los hashes, entre los que encontramos el estándar MD5 o Message-Digest Algorithm 5 ha sido usado durante décadas en muchas aplicaciones de ciberseguridad, pero también es importante para otro propósito: la verificación de datos.

Aún a día de hoy, el MD5 es el tipo de hash que más se utiliza para garantizar la integridad cuanod

Como funciona un hash

Imaginemos que estás buscando una imagen ISO de un sistema operativo Windows o Linux, que quieres buscar la última disponible y lo haces desde un cliente como BitTorrent u otra fuente no oficial.

La única forma de evitar instalar un software con posibles manipulaciones o puertas traseras es usar la validación de integridad o «digest» con estándares como MD5, SHA-1, SHA256, etcétera.

¿Cómo calcular el hash de un archivo o ejecutable?

Quizá te estarás preguntando, ¿cómo calcular un hash para garantizar la integridad y veracidad de un ejecutable o conjunto de archivos? Es más sencillo de lo que parece.

Calcular un hash en Linux o Mac OS

En estos sistemas es sumamente fácil porque tienen el cálculo de hashes posibilitado desde el propio sistema operativo. Solo tenemos que abrir un terminal y escribir lo siguiente:

md5sum ruta/archivo.iso

Lo que hemos hecho es decirle al sistema que calcule un hash (identificador único no manipulable) del fichero en cuestión. Es el número largo que aparece delante.

calcular-hash-en-linux

En un sistema Mac OS abriremos un Terminal y escribiremos:

md5 ruta/archivo.iso

Esto funciona exactamente igual con el hash de tipo SHA-1 y solo tendremos que sustituir md5 por sha1.

Calcular hash de una cadena de texto

Si queremos calcular el hash de un texto introducido a mano o pegado desde el portapapeles (en lugar de en base a un archivo) podemos adoptar una solución como la siguiente, desde el terminal de Linux:

~$ echo -n <texto> | md5sum

Donde pone texto, omitiremos los símbolos <>.

Calcular un hash en Windows

Certutil

La utilidad certutil nos permite administrar certificados y es nativa en sistemas Windows y Windows Server. Uno de los cometidos de la revisión de un certificado es garantizar su integridad, para lo cual esta utilidad cuenta con una sintaxis determinada que permite calcular la suma Hash de los mismos.

certutil -hashfile <ruta\nombre_archivo> SHA256

Ejemplo.

certutil -hashfile "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" MD5

Resultado:

FCIV

Aunque Windows no tiene esta característica de forma nativa, podemos descargar la aplicación ofrecida por Microsoft –FCIV– para comparar los hashes de dos programas o archivos. En la descarga encontraremos dos cosas: el propio programa y un archivo de texto con instrucciones de uso.

Recomiendo instalar el mismo en la ruta Windows\System32 para que podamos invocar al a herramienta desde cualquier carpeta del equipo sin tener que acceder siempre manualmente a la ruta del programa.

instalar-microsoft-file-checksum-integrity-verifier

Ahora, para calcular el hash MD5 de un archivo descargado, solo necesitamos abrir el CMD o Símbolo de Sistema desde la ruta donde se encuentra el archivo y escribir lo siguiente:

<em>fciv.exe nombre de archivo</em>

Por defecto se calculará el hash MD5 de un archivo. Si queremos obtener el hash SHA-1 bastará con escribir:

<em>fciv.exe –sha1 C:\ruta\archivo.iso</em>

La salida que obtendremos mediante el CMD con esta herramienta es similar a la que ofrece Linux:

fciv-microsoft

Calcular hash con Powershell

También podemos echar mano de la potente linea de comandos que es powershell, que viene incluido en todas las versiones recientes de Windows.

Abriremos powershell pulsando la combinación de teclas WINDOWS + R y seleccionaremos la opción apropiada. En versiones anteriores abriremos el menú Inicio > Ejecutar y escribiremos «powershell» (sin comillas) seguido de intro.

Luego escribiremos la orden:

Get-FileHash \ruta\archivo

También podemos usar Get-FileHash seguido de intro e ir escribiendo después tantas rutas como queramos. Cuando hayamos terminado pulsaremos un intro sin escribir nada. El resultado se parecerá a este:

calcular hash con powershell

Por supuesto, al utilizar el cmdlet Get-FileHash de Powershell podemos escoger el tipo de algoritmo de hash a representar, pues no siempre nos encontraremos con lo mismo en la web donde vayamos a descargar nuestro fichero, o quizá nos interese escoger algo más robusto que md5, como sha1 o sha256, que es el predefinido en Powershell.

Ejemplos:

Get-FileHash /ruta/archivo -algorithm <algoritmo>

Ejemplo: md5, sha1, sha256, etcétera.

Otras formas de calcular hashes

Si lo anterior nos da problemas o simplemente queremos conseguir alternativas más convenientes o rápidas, os recomiendo tener en cuenta dos opciones:

  • Hashtab: esta aplicación calcula hashes fácilmente. Una vez la hayamos instalado, podremos analizar el hash asociado a cualquier programa o archivo con el botón derecho. Soporta muchos más tipos además de los habituales md5 y sha1.
hashtab
  • DomainTools: esta web tiene multitud de herramientas para administradores de sistemas y servicios cloud. Este resulta especialmente conveniente. Podemos calcular cualquier tipo de hash sin esfuerzo, tanto para archivos como para entradas de texto.
calcular-hash-md5-online

Recordad que siempre hay que desconfiar de todo aquello que nos bajamos desde internet. Es mejor prevenir que curar -o esperar a que el antivirus de turno sea capaz de neutralizar la amenaza- así que empezad ya a practicar con esos hashes!

Alejandro Ver todo

Trabajo como consultor de ciberseguridad y me gusta lo que hago. Aficionado a la informática / tecnología en general, me gusta compartir con la gente lo poco que sé. También soy aficionado al deporte y los videojuegos.

13 comentarios sobre “¿Cómo calcular el hash de un archivo o ejecutable? Deja un comentario

  1. Una pregunta al respecto, ¿se puede hacer un hash de un dispositivo de almacenamiento de forma completa?, es decir, ¿se podría hacer un hash de un C:\?, por poner un ejemplo.
    Naturalmente me refiero al contenido total del dispositivo y no a cada uno de los ficheros existentes en él.
    Si la respuesta es positiva, ¿podrías indicar cómo hacerlo?.

    Gracias de antemano.

    Le gusta a 1 persona

  2. hola, como puedo saber que algoritmo hash y la cantidad de bits que usan los siguientes sistemas operativos para proteger las contraseñas de usuario
    Windows XP
    Windows 7
    Windows 10
    CentOS 6.X
    CentOS 7.X
    muchas gracias

    Me gusta

  3. Muy buena publicación, encontré de casualidad esta página, ya que estaba buscando una herramienta de hash que me recomendaron . Es increíble la tecnología como 1 bit altera todo el valor de un producto!!!.

    Le gusta a 1 persona

  4. Hola Buen día, He estado buscando en la red el proceso correcto para una firma electrónica avanzada, es decir, primero hacer un hash al archivo y luego cifrarlo, después tengo la incógnita de si el archivo resultante se inserta en el original y si es así, ¿como podría comprobar su validez’, ¿Conoces el proceso correcto, es decir los pasos a seguir de encriptación y desencriptación?, no se si puedieras orientarme

    Me gusta

Deja tu comentario (puedes hacerlo de forma anónima)

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.