Generador de Hash

Genera hashes MD5, SHA-1, SHA-256 y SHA-512

Leer la guía completa
o sube un archivo

Sobre las Funciones Hash:

  • MD5: hash de 128 bits (32 caracteres hex) - Rápido pero no seguro, usar solo para checksums
  • SHA-1: hash de 160 bits (40 caracteres hex) - No recomendado para seguridad
  • SHA-256: hash de 256 bits (64 caracteres hex) - Comúnmente usado, seguro
  • SHA-384: hash de 384 bits (96 caracteres hex) - Mayor seguridad
  • SHA-512: hash de 512 bits (128 caracteres hex) - Máxima seguridad

Una función hash criptográfica es un algoritmo matemático que transforma datos de cualquier tamaño en una cadena de longitud fija llamada 'hash' o 'digest'. Características esenciales: 1) Determinística—misma entrada siempre produce mismo hash. 2) Unidireccional—imposible recuperar datos originales del hash. 3) Resistente a colisiones—extremadamente difícil encontrar dos entradas con mismo hash. 4) Efecto avalancha—un cambio mínimo en entrada produce hash completamente diferente. Historia: MD5 (1991, Ron Rivest) produce hash de 128 bits pero está roto para seguridad. SHA-1 (1995, NSA) produce 160 bits, también comprometido desde 2017. SHA-256/SHA-512 (2001, familia SHA-2) son el estándar actual de seguridad. En LATAM, las funciones hash son obligatorias para facturación electrónica: SAT México usa SHA-256 para sellos digitales CFDI, DIAN Colombia para firma electrónica, AFIP Argentina para comprobantes fiscales. Bancos y fintech como Mercado Pago, Nubank, Ualá usan hashes para validación de transacciones.

Sitios de software (Apache, Ubuntu, Python) publican hashes SHA-256 de archivos. Después de descargar, genera el hash localmente y compara. Si coinciden, el archivo no fue modificado ni corrompido. En LATAM, esencial para descargar ISOs de sistemas operativos (Windows, Ubuntu), software de SAT/DIAN/AFIP, y verificar actualizaciones de firmware. Protege contra ataques man-in-the-middle y descargas corrompidas.

NUNCA almacenes contraseñas en texto plano. Las contraseñas deben hashearse con algoritmos especializados (bcrypt, Argon2, PBKDF2) que agregan 'salt' (valor aleatorio) y son intencionalmente lentos para dificultar ataques. SHA-256 solo NO es suficiente para contraseñas—es muy rápido y vulnerable a ataques de fuerza bruta con GPUs. En LATAM, leyes de protección de datos (LGPD Brasil, Ley 1581 Colombia, Ley Federal México) requieren medidas de seguridad apropiadas para datos personales—el hashing de contraseñas es obligatorio.

Las firmas digitales usan hashes para verificar autenticidad de documentos. El proceso: 1) Se calcula hash del documento. 2) El hash se encripta con la clave privada del firmante. 3) El receptor desencripta con la clave pública y compara hashes. En México, la e.firma del SAT usa SHA-256. En Colombia, firmas digitales de la DIAN. En Argentina, certificados de AFIP. Cualquier modificación al documento produce un hash diferente, invalidando la firma.

Servicios de almacenamiento cloud (Dropbox, Google Drive, OneDrive) usan hashes para identificar archivos duplicados. En lugar de almacenar múltiples copias del mismo archivo, calculan el hash y almacenan una sola copia. Esto ahorra espacio y ancho de banda. Git usa SHA-1 (migrating a SHA-256) para identificar commits y archivos. En LATAM, empresas con grandes volúmenes de datos usan deduplicación para reducir costos de storage en AWS, Azure, GCP.

Bitcoin, Ethereum y criptomonedas dependen de hashes SHA-256 (Bitcoin) y Keccak-256 (Ethereum). La minería consiste en encontrar un hash que cumpla cierta dificultad. Cada bloque contiene el hash del bloque anterior, creando una cadena inmutable. En LATAM, donde las criptomonedas son populares para remesas (El Salvador) y refugio de valor (Argentina, Venezuela), entender hashing es fundamental para usuarios avanzados.

Los algoritmos hash procesan datos en bloques y aplican operaciones matemáticas complejas. MD5: Procesa bloques de 512 bits, produce hash de 128 bits (32 caracteres hex). Usa 64 rondas de operaciones bitwise (AND, OR, XOR, rotaciones). Roto en 2004—se encontraron colisiones. Solo usar para checksums no críticos. SHA-1: Bloques de 512 bits, hash de 160 bits (40 caracteres). Similar a MD5 pero más rondas (80). Roto en 2017 (ataque SHAttered de Google). Deprecado para seguridad. SHA-256: Familia SHA-2, bloques de 512 bits, hash de 256 bits (64 caracteres). 64 rondas con funciones de mezcla más complejas. Estándar actual de seguridad, usado en Bitcoin, TLS, certificados digitales. SHA-512: Bloques de 1024 bits, hash de 512 bits (128 caracteres). 80 rondas. Más seguro pero más lento en sistemas de 32 bits. Más rápido en CPUs de 64 bits. Nuestra herramienta usa la API Web Crypto (crypto.subtle.digest()) que implementa estos algoritmos en código nativo optimizado, procesando archivos de varios MB en milisegundos.

Nuestra herramienta usa la API Web Crypto (crypto.subtle.digest()) disponible en todos los navegadores modernos: Chrome 37+ (2014), Firefox 34+ (2014), Safari 11+ (2017), Edge 12+ (2015). La implementación nativa es extremadamente rápida—SHA-256 procesa ~500MB/segundo en CPUs modernas. Para archivos, usamos FileReader con ArrayBuffer para procesamiento eficiente sin cargar todo en memoria. MD5 no está en Web Crypto (deprecado), así usamos implementación JavaScript pura de spark-md5 o crypto-js. Limitaciones: Archivos muy grandes (>2GB) pueden causar problemas de memoria en navegadores móviles. Para estos casos, usar herramientas de línea de comandos (openssl, sha256sum). En LATAM, donde muchos usuarios tienen dispositivos de gama media, optimizamos para rendimiento en hardware limitado.

Preguntas frecuentes

¿Puedo recuperar el texto original de un hash?
No, las funciones hash son unidireccionales por diseño matemático. Es computacionalmente imposible revertir un hash al dato original. Sin embargo, atacantes usan 'rainbow tables' (tablas precalculadas de hashes comunes) y ataques de diccionario para hashes de contraseñas débiles. Por eso las contraseñas deben usar salt (valor aleatorio) y algoritmos especializados (bcrypt, Argon2). Para texto arbitrario con alta entropía, reversión es imposible.
¿Por qué MD5 y SHA-1 se consideran inseguros?
MD5 fue 'roto' en 2004 cuando investigadores demostraron que pueden crear dos archivos diferentes con el mismo hash (colisión). En 2008, crearon un certificado SSL falso usando colisiones MD5. SHA-1 fue roto en 2017 con el ataque 'SHAttered' de Google, que creó dos PDFs diferentes con mismo hash. Para integridad de archivos no críticos (verificar descargas), MD5 sigue siendo útil. Para seguridad (firmas, certificados), solo usar SHA-256 o superior.
¿Qué hash debo usar para verificar descargas de software?
Usa SHA-256 si el sitio lo proporciona (es el estándar actual). Si solo ofrecen MD5 o SHA-1, úsalos para verificar integridad básica (detecta corrupción accidental). Proceso: 1) Descarga el archivo. 2) Genera hash con nuestra herramienta. 3) Compara con el hash publicado en el sitio oficial. Si coinciden, el archivo está intacto. Sitios confiables como Apache, Ubuntu, Python.org publican hashes SHA-256.
¿Los hashes son sensibles a mayúsculas?
El hash calculado sí diferencia mayúsculas/minúsculas en la entrada: 'Hola' y 'hola' producen hashes completamente diferentes (efecto avalancha). Sin embargo, la representación hexadecimal del hash puede mostrarse en mayúsculas o minúsculas—'ABC123' y 'abc123' representan el mismo valor. Nuestra herramienta muestra minúsculas (estándar común), pero ambas son equivalentes.
¿Cómo verifico hashes de archivos de facturación electrónica (SAT, DIAN)?
En México, los CFDI (facturas electrónicas) incluyen un sello digital que es el hash SHA-256 de la cadena original, encriptado con la clave privada del emisor. El SAT proporciona herramientas de verificación. En Colombia, la DIAN usa SHA-256 para firmas electrónicas de facturas. En Argentina, AFIP usa hashes para comprobantes fiscales. Nuestra herramienta puede verificar hashes individuales, pero la validación completa de facturas requiere verificar la firma digital completa, no solo el hash.
¿Qué es el 'salt' en hashing de contraseñas?
Salt es un valor aleatorio único agregado a cada contraseña antes de hashear. Sin salt: hash('contraseña123') siempre produce el mismo resultado—vulnerable a rainbow tables. Con salt: hash(salt + 'contraseña123') produce resultado diferente para cada usuario, incluso con misma contraseña. El salt se almacena junto al hash (no es secreto). Algoritmos como bcrypt, Argon2, PBKDF2 generan salt automáticamente. SHA-256 solo (sin salt y sin iteraciones) NO es seguro para contraseñas.
¿Por qué dos archivos diferentes pueden tener el mismo hash (colisión)?
Por el principio del palomar (pigeonhole principle): hay infinitos archivos posibles pero cantidad finita de hashes (2^256 para SHA-256). Matemáticamente, colisiones deben existir. La fortaleza de un buen hash es que encontrar colisiones es computacionalmente impracticable—tomaría millones de años con toda la computación del planeta. SHA-256 con 2^256 posibilidades es prácticamente inmune a colisiones por fuerza bruta. MD5 y SHA-1 tienen debilidades matemáticas que permiten encontrar colisiones mucho más rápido.
¿Los hashes funcionan igual para texto en español (ñ, acentos)?
Sí, pero depende de la codificación. Nuestra herramienta usa UTF-8, entonces 'Año' produce un hash consistente. Diferentes codificaciones (UTF-8, Latin-1, UTF-16) del mismo texto producen hashes diferentes porque los bytes subyacentes son diferentes. Siempre usa UTF-8 para consistencia. En LATAM, donde el español con ñ y acentos es común, asegúrate de que emisor y receptor usen la misma codificación al verificar hashes.

Herramientas Relacionadas