Verificador de hash de archivo
CifradoTodo se ejecuta en tu navegador: no se sube nada
Calcula el hash de un archivo: basta con soltarlo. El archivo nunca se sube; todo el trabajo ocurre dentro de tu navegador. La razón más común es comprobar una descarga: el fabricante o el espejo publica `sha256: 9f86d0…`, y compararlo con lo que calculas aquí te dice si el archivo llegó intacto o si alguien lo manipuló. Hoy casi todas las páginas de publicación, las descargas de firmware y las distribuciones de Linux incluyen un digest. ⚠️ Los archivos grandes se calculan por bloques: a partir de 32 MB la herramienta pasa a su propia implementación incremental, que lee un bloque a la vez para que la memoria no crezca con el archivo, y muestra el progreso en vivo (por ejemplo, «Procesados 1,2 GB / 4,0 GB»). Los archivos pequeños siguen usando el digest nativo del navegador, que es más rápido. El resultado indica qué ruta se usó, nunca un cambio en silencio. Se mantiene un techo de 512 MB: el hash en JS puro es mucho más lento que la línea de comandos, así que por encima de ese tamaño usa `sha256sum`, o `certutil -hashfile <nombre> SHA256` en Windows. Una advertencia más: MD5 y SHA-1 ya no sirven para detectar manipulación — construir colisiones es lo bastante barato para una máquina corriente. Están aquí porque muchísimos sistemas heredados los siguen usando y las guías antiguas los recomiendan. Si de verdad necesitas saber si un archivo se alteró, usa SHA-256. 💡 No hace falta que compares a mano: pega la línea de la página de publicación en el campo de comparación tal cual (se admiten mayúsculas, separadores `:` y prefijos como `SHA256(file) = …`), y la parte superior del resultado dice con claridad si coincide — con ambos valores uno al lado del otro cuando no lo hacen.
Funciones
- Cinco digests de una vez: MD5, SHA-1, SHA-256, SHA-512 y CRC-32
- Nombre, tamaño, tipo y fecha de modificación del archivo junto a ellos
- Botón de copiar en cada fila: sin arrastrar para seleccionar una cadena hexadecimal larga
- ⚠️ Pega el digest publicado en el campo de comparación y el resultado dice con claridad si coincide — sin comparar a ojo dos cadenas hexadecimales de 64 caracteres
- Se admiten todas las formas: mayúsculas, separadores `:` o espacios y prefijos como `SHA256(file) = …`. El algoritmo se deduce de la longitud del digest, así que nunca lo eliges tú
- Un archivo vacío también da un digest real en vez de una salida en blanco
- ⚠️ A partir de 32 MB calcula por bloques, así que la memoria no crece con el archivo, y muestra el progreso (Web Crypto no tiene interfaz incremental, así que el troceado usa una implementación en JS puro incluida)
- El resultado dice si usó troceado (poca memoria) o de una vez, nunca un cambio en silencio
- Por encima de 512 MB explica por qué y nombra la herramienta de línea de comandos que usar en su lugar
- El archivo nunca se sube; sigue funcionando sin conexión
Cómo se usa
- Suelta el archivo en el recuadro de línea discontinua, o haz clic para elegir uno
- Los resultados aparecen al momento, con los cinco digests apilados
- Si el editor da un digest, pega esa línea en el campo de comparación: el veredicto sale arriba
- Haz clic en el botón de copiar de cualquier fila para llevarte ese valor
Preguntas frecuentes
- ¿Por qué mi SHA-256 no coincide con el del sitio?
- Comprueba tres cosas por orden. Puede que la descarga esté incompleta: una transferencia interrumpida a veces deja un archivo parcial de aspecto plausible cuyo tamaño difiere del real; compáralo con el que se muestra aquí. Puede que sea otra compilación: versiones, arquitecturas (x64 / arm64) y espejos tienen digests distintos, así que confirma que descargaste exactamente el archivo al que se refiere la página. O sí se alteró de verdad: si el tamaño y la versión cuadran y el digest sigue sin coincidir, considera que el archivo pudo ser sustituido en tránsito, sobre todo si vino de una fuente no oficial.
- ¿Sirve todavía MD5?
- Depende para qué. Contra la corrupción en tránsito es pasable: unos bytes que cambian durante la descarga se detectarán casi con seguridad, y CRC-32 también lo haría. Contra la manipulación deliberada no: las colisiones de MD5 y SHA-1 se han construido en la práctica, así que un atacante puede fabricar un archivo malicioso que comparta digest con uno genuino, lo que significa que un digest coincidente ya no prueba que el archivo esté intacto. Para eso usa SHA-256. Y para guardar contraseñas nunca fue adecuado: eso es cosa de bcrypt, scrypt o Argon2.
- ¿Cómo se calculan los archivos grandes y por qué sigue habiendo un límite de 512 MB?
- Los archivos de más de 32 MB toman la ruta por bloques: una implementación incremental de SHA / MD5 / CRC incluida consume un bloque a la vez, así que la memoria no crece de forma lineal con el archivo, y va informando del progreso. Entre bloque y bloque cede un fotograma al hilo principal, de modo que la página nunca se congela. Los archivos pequeños siguen yendo al `crypto.subtle` nativo del navegador, que es más rápido. El techo de 512 MB se mantiene porque el hash en JS puro es mucho más lento que una herramienta nativa de línea de comandos, y por encima de ese tamaño `sha256sum` o `certutil -hashfile` son la mejor opción. ⚠️ Ten en cuenta además que esta herramienta maneja un archivo a la vez: no hay comparación byte a byte de dos archivos; ese es el contrato de la interfaz. Para comprobar un archivo, pega el digest publicado en el campo de comparación.
Herramientas relacionadas
Hash
CifradoCalcula resúmenes MD5, SHA-1, SHA-256, SHA-512 o MD4 de cualquier texto, en bytes UTF-8 para que coincidan con openssl. En tu navegador.
Búsqueda inversa MD5
CifradoBusca un digest MD5 en una lista de contraseñas comunes y por enumeración, todo en tu equipo: sin subir nada ni consultar bases de datos en línea.
CRC-32
CifradoCalcula la suma de verificación CRC-32 de cualquier texto en seis variantes, con IEEE, Castagnoli y Koopman incluidas, y dónde se usa cada una.
Base64
CifradoConvierte texto a Base64 y al revés, con UTF-8 correcto para acentos, chino y emoji. Todo se ejecuta en tu navegador: no se sube nada.
Codificar URL
CifradoEscapa texto a la forma %XX y lo devuelve, tratando una URL completa y un valor de parámetro como trabajos distintos. Todo en tu navegador.
Entidades HTML
CifradoConvierte < > & y las comillas en entidades HTML y las devuelve en una sola pasada, así que &lt; da <, no un ángulo. En tu navegador.