Cómo comprobar el hash SHA256 de un archivo en Windows
El hash SHA256 es la huella digital de un archivo. Si el hash de la descarga coincide con el publicado, el archivo es exactamente el que se publicó, sin cambios ni errores de descarga.
Obtener el hash con PowerShell
Get-FileHash viene con Windows. Se ejecuta en la carpeta donde está la descarga; SHA256 es su algoritmo predeterminado.
Get-FileHash .\vlc-3.0.21-win64.exe -Algorithm SHA256O con el símbolo del sistema
certutil, presente en todas las versiones de Windows, muestra el mismo valor en minúsculas (las versiones antiguas de Windows separan los bytes con espacios).
certutil -hashfile vlc-3.0.21-win64.exe SHA256Comparar automáticamente
El hash publicado se pega entre las comillas. La comparación no distingue mayúsculas de minúsculas y devuelve True si el archivo coincide.
(Get-FileHash .\vlc-3.0.21-win64.exe).Hash -eq "HASH-SHA256-PUBLICADO"Qué significa que no coincida
El archivo no es el que se publicó: la descarga se cortó, un proxy lo modificó o el desarrollador sustituyó el archivo en la misma dirección. No hay que ejecutarlo. Lo indicado es descargarlo de nuevo desde la dirección oficial; si el hash sigue sin coincidir, lo más probable es que el desarrollador haya cambiado el archivo y el manifiesto se actualizará.
Revisar también la firma digital
El hash demuestra que el archivo no ha cambiado; la firma indica quién lo publicó. En PowerShell, Get-AuthenticodeSignature muestra el firmante y si la firma es válida. En el Explorador de archivos: Propiedades → Firmas digitales.
Get-AuthenticodeSignature .\vlc-3.0.21-win64.exe | Format-List Status, SignerCertificatePreguntas frecuentes
¿Si el hash coincide, el programa está libre de malware?
No. Solo significa que el archivo es el que figura en los datos del paquete. Para revisar el contenido hay que analizar el archivo o buscar su hash en VirusTotal; ExeAtlas enlaza esa consulta en cada instalador.
¿SHA256 es mejor que MD5 o SHA1?
Sí. MD5 y SHA1 se pueden falsificar a propósito; SHA256 no, con los medios actuales, y por eso lo usa winget.