Obtener hashes de archivos puede ser muy útil. Esto se puede utilizar, por ejemplo, para asegurarse de que los archivos de la copia de seguridad no están dañados o modificados (generando hash antes y después del proceso), o para asegurarse de que nadie ha manipulado un archivo importante.
Puede que también lo veas en sitios de descargas, pero su uso es limitado. La razón es simple: si un atacante logra cambiar el archivo de descarga, existe la posibilidad de que el sitio web también se vea comprometido. Esto podría teóricamente significar al menos que el hash del archivo que se muestra en el sitio también se modificó para adaptarse a la nueva versión maliciosa de la descarga.
Hemos revisado un número considerable de programas relacionados con el hash en el pasado: desde la extensión de shell de Windows HashTab, pasando por HashMyFiles de Nirsoft hasta File Check MD5 y MD5 Check Utility.
Índice de contenido
Obtener hashes de archivos con Windows PowerShell
Si necesita generar el hash de un archivo rápidamente en una máquina Windows, entonces también puede usar PowerShell para eso.
Puede que no sea tan cómodo como algunos de los programas de hash existentes, pero es una implementación nativa que no requiere software de terceros para funcionar. Útil en entornos restringidos, por ejemplo, o cuando no hay conexión a Internet disponible para descargar estos programas.
La generación de hash se integró en PowerShell 4.0. Se incluye en Windows 8.1 y Windows Server 2012 R2, y también está disponible para Windows 7 Service Pack 1, Windows Server 2012 y Windows Server 2008 R2 Service Pack 1.
- Pulse sobre la tecla Windows, escriba PowerShell y pulse la tecla Enter para iniciarla.
El comando principal es get-filehash FILEPATH , e.g. get-filehash c:test.txt .
Get-FileHash utiliza el algoritmo Sha256 por defecto. Puede especificar un algoritmo diferente utilizando el parámetro -Algoritmo.
Soportados son: SHA1, SHA256, SHA384, SHA512, MACTripleDES, MD5, RIPEMD160
Tenga en cuenta que MD5 y SHA1 ya no se consideran seguros, pero siguen siendo compatibles.
Así, para generar un hash Sha512 se usaría el comando get-filehash -Algoritmo Sha512 c:test.txt.
También puede utilizar -LiteralPath o -InputStream en lugar de la opción de ruta predeterminada.
- LiteralPath: get-filehash -LiteralPath -Algorithm SHA512 c:test.txt.
- InputStream get-filehash -InputStream -Algorithm SHA512 Stream.
La diferencia principal entre trayectoria y trayectoria literal es que la trayectoria literal no admite comodines y se utiliza exactamente como está escrita.
CertUtil
CertUtil es otro programa nativo de Windows que puede usar para calcular hash de archivos. Puede ejecutar el programa desde la línea de comandos o utilizando PowerShell.
El comando base es certutil -hashfile PATH , por ejemplo certutil -hashfile c:example.txt .
También puede especificar el algoritmo hash. Soporta MD2, MD4, MD5, SHA1, SHA256, SHA384, SHA512. El algoritmo por defecto es MD5.
Para usar un algoritmo hash diferente, especifíquelo después del comando, por ejemplo certutil -hashfile c:example.txt SHA512 .
Palabras de cierre
Puede utilizar los comandos de los scripts para calcular hashes para varios archivos en una sola operación. Las dos herramientas nativas get-filehash y certutil son muy útiles para el cálculo rápido de hash en Windows, y también para el uso de scripts. (vía <