Para qué sirve
Una función hash convierte cualquier texto, largo o corto, en una cadena de longitud fija. El mismo texto produce siempre el mismo resumen, y cambiar una sola letra lo transforma por completo: no se parece en nada al anterior. Esa es toda la utilidad, y da para mucho.
Sirve para comprobar que un archivo ha llegado íntegro, para identificar contenido sin guardarlo, para firmar y verificar datos y para detectar cambios. Git identifica cada commit con un hash; los navegadores comprueban con uno que un script externo no haya sido alterado.
Lo que un hash no es: cifrado. No hay clave y no hay vuelta atrás. Del resumen no se puede recuperar el texto, ni siquiera sabiendo el algoritmo, porque la información se pierde por el camino.
Cómo se calcula
El texto se convierte primero a bytes UTF-8 y sobre esos bytes se aplica el algoritmo. Por eso el tamaño de la entrada se mide en bytes y no en caracteres: una eñe ocupa dos y un emoji puede ocupar cuatro.
El cálculo lo hace la Web Crypto del navegador, la misma implementación nativa que usan las conexiones seguras. No hay dependencias ni criptografía escrita a mano, que es la forma clásica de introducir un fallo sutil.
El resumen se muestra en hexadecimal, que es el formato habitual, y en Base64, que es el que piden las cabeceras de integridad de subrecursos y algunos protocolos.
texto → bytes UTF-8 → algoritmo → resumen de longitud fijaLa longitud del resultado no depende de la entrada: SHA-256 siempre devuelve 256 bits, sean dos letras o dos megabytes.
256 bits = 32 bytes = 64 caracteres hexadecimalesCada byte se escribe con dos dígitos hexadecimales, de ahí la longitud del resultado.
Ejemplo resuelto
El resumen SHA-256 de «Utiloteca»
- Texto
- Utiloteca
- Algoritmo
- SHA-256
- El texto se convierte a bytes UTF-8: son 9 bytes, uno por letra al ser todas ASCII.
- Se aplica SHA-256 sobre esos bytes.
- El resultado son 256 bits, que se escriben como 64 caracteres hexadecimales.
- Si cambiaras una sola letra —«utiloteca» en minúscula—, el resumen sería completamente distinto, sin ningún parecido con el anterior.
Un resumen de 64 caracteres hexadecimales, siempre el mismo para ese texto exacto.
Qué algoritmo elegir
Si no tienes un motivo concreto para otra cosa, SHA-256. Es el estándar actual y el que espera casi todo el ecosistema.
| Algoritmo | Bits | Estado | Cuándo usarlo |
|---|---|---|---|
| SHA-256 | 256 | Recomendado | La opción por defecto: integridad, firmas, identificadores |
| SHA-384 | 384 | Recomendado | Perfiles de TLS y firmas que lo exigen expresamente |
| SHA-512 | 512 | Recomendado | Cuando se pide más margen; en máquinas de 64 bits suele ser más rápido |
| SHA-1 | 160 | Roto desde 2017 | Solo para comprobar identificadores heredados, como los de Git |
Por qué no hay MD5
La Web Crypto de los navegadores no incluye MD5 deliberadamente: está roto desde 2004 y generar colisiones a propósito es cuestión de segundos. Ofrecerlo aquí obligaría a implementar criptografía a mano, y no vamos a mantener nuestra propia implementación de un algoritmo que no debería usarse.
SHA-1 sí está disponible, marcado como roto, porque sigue vivo en sistemas heredados —Git lo usa para identificar objetos— y a veces solo se quiere comprobar un identificador que ya existe.
Los hashes no sirven para guardar contraseñas
Un SHA es rápido a propósito, y eso lo convierte en mala elección para almacenar contraseñas: quien obtenga la base de datos puede probar miles de millones de combinaciones por segundo.
Para contraseñas se usan funciones diseñadas para ser lentas y con sal, como Argon2, scrypt o bcrypt. La lentitud es la característica, no un defecto.
Preguntas frecuentes
¿Se puede recuperar el texto original a partir del hash?
No. La función descarta información por el camino, así que la operación no tiene inversa. Lo que sí se puede hacer con textos cortos y predecibles es calcular el hash de muchos candidatos hasta encontrar el que coincide, que es como funcionan las tablas de consulta. Por eso los datos sensibles no se protegen solo con un hash.
¿Qué es una colisión y por qué importa?
Una colisión es que dos entradas distintas produzcan el mismo resumen. Matemáticamente son inevitables, porque hay infinitas entradas y un número finito de salidas; lo que importa es que sea inviable encontrarlas a propósito. En SHA-1 dejó de serlo en 2017, cuando se publicaron dos PDF distintos con idéntico resumen.
¿Por qué el mismo texto me da un hash distinto en otra herramienta?
Casi siempre por diferencias en la entrada, no en el algoritmo. Un salto de línea final, un espacio invisible o una codificación distinta de los acentos cambian los bytes y, por tanto, el resumen. Comprueba que el texto sea exactamente el mismo, incluidos los caracteres que no se ven.
¿Sirve para comprobar la integridad de un archivo?
Ese es uno de sus usos principales, pero esta herramienta trabaja con texto, no con archivos. Para verificar una descarga usa el comando de tu sistema: «sha256sum archivo» en Linux, «shasum -a 256 archivo» en macOS o «Get-FileHash archivo» en PowerShell, y compara el resultado con el publicado.
¿El texto que escribo sale de mi navegador?
No. El resumen se calcula con crypto.subtle, la implementación criptográfica nativa del propio navegador. No hay peticiones de red, el texto no se envía a ningún servidor y no queda guardado en ninguna parte.
Fuentes
Toda la información de esta página se refiere a: Generador de hash SHA.