Calculadora de hash de archivos gratuita
Calcula los hashes SHA-1, SHA-256, SHA-384, SHA-512 y MD5 de cualquier archivo. Verifica la integridad del archivo y detecta cambios al instante.
Lo que realmente son los hashes de archivo
Un hash criptográfico es una huella digital de longitud fija calculada a partir de datos de entrada arbitrarios (un archivo, una cadena, un flujo de bytes) usando una función matemática determinista. Cada entrada distinta produce una salida diferente (con una probabilidad de colisión infinitesimal para las funciones hash modernas); voltear un solo bit en cualquier parte de un archivo de varios gigabytes cambia esencialmente cada bit del hash resultante. La función va solo en una dirección: a partir de la entrada puedes calcular el hash trivialmente, pero recuperar la entrada a partir del hash es computacionalmente inviable para cualquier función hash decente. La salida es siempre de la misma longitud fija independientemente del tamaño de entrada, SHA-256 produce 256 bits (32 bytes, mostrados como 64 caracteres hex) ya sea que la entrada sea de un byte o de un terabyte. Tres propiedades importan: resistencia a preimagen (no puedes hacer ingeniería inversa de un archivo a partir de su hash), resistencia a segunda preimagen (no puedes construir un archivo diferente con el mismo hash), y resistencia a colisiones (no puedes encontrar dos archivos distintos con hashes coincidentes). Este editor calcula el hash de cualquier archivo que proporciones usando la Web Crypto API integrada del navegador, específicamente SubtleCrypto.digest(), que está implementada nativamente en cada navegador moderno y se ejecuta en la CPU del dispositivo en lugar de subir el archivo a ningún sitio.
Los algoritmos, una breve historia
Cinco algoritmos en esta herramienta, en orden cronológico de lanzamiento. MD5 (Message Digest 5, Ronald Rivest en el MIT, RFC 1321 publicada en abril de 1992) produce un hash de 128 bits y fue el hash de propósito general dominante de los años 1990 y principios de los 2000. Las debilidades criptográficas comenzaron a aparecer en 1996 (pseudo-colisión de Dobbertin); un ataque de colisión práctico fue demostrado por Xiaoyun Wang y Hongbo Yu en agosto de 2004 en CRYPTO 2004, completado en menos de una hora en una sola máquina. Marc Stevens publicó un ataque de colisión de prefijo elegido en 2008 que permitió forjar certificados X.509 colisionantes. MD5 ahora está roto para cualquier propósito criptográfico, nunca lo uses donde importe la resistencia a colisiones (firmas digitales, huellas digitales de certificado, hashing de contraseñas). Sigue siendo útil para verificaciones de integridad no criptográficas (detección de corrupción accidental por discos malos o transferencias de red ruidosas) y para identificadores direccionables por contenido donde confías en que la fuente no sea maliciosa.
SHA-1 (Secure Hash Algorithm 1, diseñado por la NSA, publicado como FIPS 180-1 en abril de 1995) produce un hash de 160 bits y fue el hash criptográfico dominante desde finales de los años 1990 hasta principios de los 2010. Ataques teóricos fueron propuestos en 2005 por Wang, Yin y Yu. La primera colisión SHA-1 práctica fue publicada el 23 de febrero de 2017 por un equipo de Google + CWI Amsterdam liderado por Marc Stevens (el ataque «SHAttered») usando alrededor de 9 quintillones de cálculos SHA-1 para producir dos archivos PDF con hashes SHA-1 idénticos pero contenido visiblemente diferente. Los navegadores ya habían comenzado a eliminar gradualmente los certificados TLS SHA-1 para entonces; el Git moderno está migrando de SHA-1 a SHA-256 para la identidad de objetos. Como MD5, SHA-1 está bien para integridad no criptográfica pero nunca debería usarse donde la resistencia a colisiones importa en 2026.
SHA-2 (NSA, FIPS 180-2 publicado en agosto de 2002) es la familia de hash de trabajo actual, un conjunto de funciones relacionadas que incluye SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224 y SHA-512/256. SHA-256 produce hashes de 256 bits, SHA-384 produce hashes de 384 bits, SHA-512 produce hashes de 512 bits; 384 es esencialmente SHA-512 con salida truncada y un IV diferente. No existen ataques prácticos contra la familia SHA-2 a partir de 2026; SHA-256 es la elección por defecto para nuevas aplicaciones y es la función hash detrás de Bitcoin (tanto para minería como para derivación de direcciones), huellas digitales de certificados TLS, la migración planeada de identidad de objetos de Git, el hash de transacciones de Ethereum, las firmas JWT HS256, y la mayoría de las sumas de comprobación de distribución de software. SHA-512 se prefiere cuando 256 bits de salida no son suficientes o cuando quieres el rendimiento ligeramente más rápido en CPUs de 64 bits (las operaciones internas de SHA-512 son de 64 bits, frente a las de 32 bits de SHA-256, así que procesa más datos por ciclo de CPU en hardware de 64 bits a pesar de la salida más grande).
SHA-3 (Keccak, diseñado por Guido Bertoni, Joan Daemen, Michaël Peeters y Gilles Van Assche, ganó la Competición NIST SHA-3 en octubre de 2012, estandarizado como FIPS 202 en agosto de 2015) es la póliza de seguro criptográfica: estructuralmente diferente de SHA-2 (construcción de esponja en lugar de Merkle-Damgård), así que cualquier avance que rompiera SHA-2 no necesariamente rompería SHA-3. SHA-3 no está actualmente en la lista de algoritmos de esta herramienta porque la Web Crypto API no lo incluyó en la spec original, los navegadores modernos pueden añadirlo en el futuro. La familia SHA-2 es el predeterminado recomendado para hashing en el lado del navegador hoy.
Alternativas modernas más allá de SHA-2
Dos familias de hash no-NIST han ganado tracción por razones de rendimiento. BLAKE2 (Aumasson, Neves, Wilcox-O'Hearn, Winnerlein, enero de 2013) es más rápido que SHA-2 con seguridad comparable y es ampliamente usado en criptomonedas, hashing de contraseñas Argon2, y aplicaciones de alto rendimiento donde la velocidad de SHA-2 es un cuello de botella. BLAKE3 (O'Connor, Aumasson, Neves, Wilcox-O'Hearn, enero de 2020) es un rediseño que es paralelizable a través de muchos núcleos de CPU y aún más rápido, particularmente atractivo para hashear archivos muy grandes porque el trabajo se divide entre los núcleos limpiamente. Ninguno está en el estándar Web Crypto API, así que esta herramienta se queda con la familia SHA-2 + MD5 + SHA-1 por compatibilidad; para hashing BLAKE3 en línea de comandos la implementación canónica es la herramienta b3sum del repositorio de referencia BLAKE3. La elección para hashing de archivos en el navegador en 2026 sigue siendo SHA-256 a menos que haya una razón específica para usar otra cosa, amplia compatibilidad, sin problemas de patente, acelerado por hardware en la mayoría de las CPUs modernas (Intel SHA Extensions desde Goldmont 2016, instrucciones ARMv8 SHA-2 en esencialmente cada smartphone), y velocidad aceptable incluso en archivos de varios gigabytes en el navegador.
Cuándo los hashes de archivo se ganan el sueldo
- Verificar que un archivo descargado coincida con la suma de comprobación del editor. Las distribuciones Linux (Ubuntu, Debian, Fedora, Arch), proyectos de código abierto (Node.js, Python, Go) y descargas sensibles a la seguridad (el navegador Tor, imágenes de firmware firmadas) publican hashes SHA-256 junto con sus descargas. Después de descargar, hashea el archivo localmente, compara con el valor publicado carácter por carácter, si coinciden, el archivo llegó intacto y no es una copia manipulada o interrumpida.
- Encontrar archivos duplicados. Los archivos idénticos siempre producen hashes idénticos independientemente del nombre de archivo, ubicación o marca de tiempo de modificación. Un flujo de trabajo de deduplicación simple: hashea cada archivo en un árbol de directorios, agrupa por hash, cualquier cosa con múltiples archivos en el mismo grupo es un duplicado. Herramientas como
fdupesen Linux hacen exactamente esto con MD5 (aceptable aquí porque la deduplicación no depende de la resistencia criptográfica a colisiones). - Detectar modificación de archivo. Hashea un archivo hoy, almacena el hash, hashea de nuevo más tarde, compara, cualquier diferencia significa que el archivo ha cambiado incluso por un solo bit. Usado por herramientas de monitoreo de integridad de archivos (Tripwire fue el original, 1992; OSSEC y Wazuh son descendientes modernos), sistemas de verificación de copias de seguridad y sync incremental estilo rsync.
- Almacenamiento direccionable por contenido. Git identifica cada blob, árbol y commit por su hash SHA-1 (migrando a SHA-256 en próximas versiones). IPFS usa multihash. Las capas Docker se direccionan por su hash de contenido. Cualquier sistema donde «esto es el mismo contenido» necesita ser respondido de manera barata y fiable usa el hashing de contenido como mecanismo subyacente.
- Cadena de custodia en informática forense. Cuando se hacen imágenes de archivos de evidencia, el estándar forense es calcular SHA-256 de la imagen de disco en el momento de la adquisición y en cada punto posterior, cualquier divergencia demuestra manipulación. La National Software Reference Library (NSRL) del NIST publica hashes de archivos buenos conocidos y malos conocidos para triaje forense.
- Verificación de la cadena de suministro de software. Sigstore, in-toto, SLSA, integridad de paquetes npm (
integrity: sha512-...enpackage-lock.json), la base de datos de checksums del proxy de módulos de Go, todos descansan sobre el hashing de archivos como primitiva de integridad. El hash de un artefacto publicado es el puente entre «confío en esta firma» y «este es el artefacto que la firma atestiguó».
Cómo funciona esta herramienta
Cuando sueltas un archivo en el editor, el navegador lo lee en un ArrayBuffer vía FileReader.readAsArrayBuffer() (o, en navegadores modernos, el método más eficiente File.arrayBuffer() que devuelve una Promise). El crypto.subtle.digest(algorithm, buffer) de la Web Crypto API hashea el buffer con código nativo, implementado en C++ dentro del motor del navegador, a menudo usando aceleración por hardware (Intel SHA Extensions en x86-64 desde Goldmont, instrucciones ARMv8 SHA-2 en esencialmente cada smartphone). El ArrayBuffer devuelto se convierte a una cadena hex para mostrarse. Tres hashes JavaScript puro (MD5 y SHA-1, donde la Web Crypto API puede declinar o donde está en uso un polyfill) corren mediante pequeñas implementaciones dedicadas. Sin paso de subida, sin procesamiento de servidor, sin telemetría, verifica en la pestaña Red de DevTools mientras sueltas un archivo (no se dispara ninguna petición), o pon la página sin conexión (modo avión) tras cargarla y el hasher sigue funcionando con archivos locales. El límite práctico de tamaño de archivo es la memoria del navegador: hashear un archivo de 1 GB funciona pero consume ~1 GB de RAM durante la operación; los archivos de varios gigabytes pueden forzar al navegador a hacer swap o fallar. Para archivos muy grandes, una herramienta de línea de comandos dedicada (shasum -a 256 en macOS/Linux, certutil -hashfile ... SHA256 en Windows) es la mejor elección.
Privacidad: por qué el solo-navegador importa especialmente aquí
Los archivos que podrías querer hashear incluyen software descargado (que estás verificando para integridad precisamente porque todavía no confías en él), documentos privados (cuyo hash quieres registrar sin dárselos a nadie), archivos multimedia no publicados, evidencia en una investigación forense, o builds propietarios donde incluso subir el archivo a un servicio de hashing es inaceptable. Los hashers de archivos del lado del servidor, incluso cuando dicen «no guardamos el archivo», reciben el contenido completo del archivo, para cuando está en su memoria, la garantía de privacidad ya se ha ido. Esta herramienta se ejecuta enteramente en tu navegador vía la Web Crypto API; el archivo nunca atraviesa la red. Verifica en la pestaña Red de DevTools mientras sueltas un archivo (la única actividad de red debería ser la carga inicial de la página). Pon la página sin conexión (modo avión) tras cargarla (el hasher sigue funcionando, demostrando la arquitectura solo-local. Para archivos que contengan cualquier cosa sensible) documentos confidenciales, software no publicado, registros financieros, escaneos médicos, cualquier cosa cubierta por NDA o regulación de cumplimiento, el hashing en el navegador es la única opción segura.
Preguntas frecuentes
¿Qué algoritmo de hash usar?
SHA-256 es el predeterminado correcto para cualquier nuevo uso en 2026, amplia compatibilidad, sin ataques prácticos conocidos, acelerado por hardware en cada CPU moderna. Usa SHA-512 si quieres una salida de 512 bits (ligeramente más rápido en CPUs de 64 bits, más bits de resistencia a colisiones). Usa MD5 o SHA-1 solo cuando coincidas con una suma de comprobación publicada que use esos algoritmos (algunas distribuciones Linux todavía publican sumas MD5 junto a SHA-256 para compatibilidad hacia atrás), nunca uses ninguno para ningún nuevo propósito criptográfico. Adáptate a cualquier algoritmo que el editor del archivo que estás verificando haya elegido.
¿Se puede invertir un hash para recuperar el archivo original?
No. Las funciones hash son deliberadamente unidireccionales, dado un hash, no hay algoritmo eficiente para recuperar la entrada. La única ruta de ataque es la fuerza bruta: hashea entradas candidatas hasta que una produzca un hash coincidente. Para archivos de cualquier tamaño razonable (más de unos pocos bytes) esto es computacionalmente inviable, el número de archivos posibles de incluso 1 KB excede el número de átomos en el universo observable muchas veces. Esta propiedad unidireccional es lo que hace los hashes útiles para almacenamiento de contraseñas (con sal y estiramiento), firmas digitales, y almacenamiento direccionable por contenido.
¿Es MD5 seguro para la verificación de archivos?
Para verificaciones de integridad no adversariales (atrapar corrupción accidental por una red inestable o un disco malo), MD5 está bien, los bit flips aleatorios producirán un MD5 diferente con probabilidad abrumadora. Para verificación adversarial (atrapar a un actor malicioso que sustituyó un archivo), MD5 está roto: los ataques de colisión han sido prácticos desde 2004, y las colisiones de prefijo elegido desde 2008. Práctica de seguridad moderna: usa SHA-256 para cualquier cosa donde alguien podría estar intentando engañarte, y MD5 solo cuando la fuente sea de confianza y solo necesites una suma de comprobación rápida.
¿Hay un límite de tamaño de archivo?
Sin tope estricto, pero los límites prácticos dependen de la memoria del navegador. Los archivos de hasta unos pocos cientos de MB se hashean rápidamente en cualquier dispositivo moderno. Los archivos en el rango de 1-2 GB funcionan pero consumen RAM igual al tamaño del archivo durante la pasada de hashing. Los archivos de varios gigabytes pueden disparar swapping o crashes OOM del navegador. Para archivos muy grandes, las herramientas de línea de comandos (shasum -a 256 file en macOS/Linux, certutil -hashfile file SHA256 en Windows, Get-FileHash en PowerShell) los manejan mejor porque pueden hacer streaming del archivo en lugar de cargarlo todo en memoria.
¿Qué significa cuando dos archivos tienen el mismo hash?
Para una función hash sana (SHA-256, SHA-512, o cualquiera en la familia SHA-2 en 2026), significa que los archivos son idénticos bit a bit, la probabilidad de que dos archivos distintos produzcan el mismo hash es infinitesimal. Para funciones hash rotas (MD5, SHA-1), podría significar archivos idénticos o una colisión deliberadamente construida. Regla práctica: si calculas SHA-256 de dos archivos y obtienes el mismo valor, los archivos son los mismos. Si calculas MD5 y obtienes el mismo valor, los archivos son probablemente los mismos pero un adversario determinado podría haberlos diseñado para colisionar.