Un hash reduce cualquier texto a una cadena de longitud fija: MD5 devuelve 32 caracteres hexadecimales, SHA-1 devuelve 40 y SHA-256 devuelve 64, tanto si escribe una palabra como si pega una novela entera. Cambie una sola coma y la salida no se parece en nada a la anterior; en eso consiste su utilidad para comprobar que dos copias de un mismo texto son idénticas.
Aquí se calcula el hash del texto que introduzca, codificado en UTF-8, con el algoritmo que elija. La herramienta trabaja sobre texto y no sobre archivos, y no aplica sal ni HMAC: es una comprobación rápida, no una pieza de un sistema de autenticación.
MD5 y SHA-1 están rotos
«Roto» tiene aquí un significado preciso: se saben construir dos entradas distintas que producen el mismo hash. Con MD5 eso es cuestión de segundos en un portátil desde hace años. Con SHA-1 se demostró en 2017 con dos PDF diferentes que comparten hash, y el ataque no ha dejado de abaratarse desde entonces. Firmar, sellar o verificar la autenticidad de algo con cualquiera de los dos no es aceptable: quien controle el contenido puede fabricar dos versiones con el mismo hash y firmar la inofensiva.
Para lo que sí siguen valiendo es para detectar una corrupción accidental: un byte que se pierde en una descarga, un disco que empieza a fallar, una copia que se interrumpió. Ahí no hay nadie intentando engañarle, y un MD5 que no cuadra basta para saber que el archivo llegó mal. En cuanto haya un adversario de por medio, SHA-256.
Una contraseña no se guarda como SHA-256
Es el error más caro de todos los que aparecen aquí. SHA-256 está diseñado para ser rápido, y esa velocidad juega en contra de quien lo usa para contraseñas: una tarjeta gráfica corriente prueba miles de millones de candidatos por segundo. Un diccionario de contraseñas habituales se agota en minutos, y que el algoritmo sea moderno no cambia nada.
Para contraseñas existen funciones pensadas al revés, para ser lentas y —en el caso de scrypt y Argon2— para consumir memoria: bcrypt, scrypt y Argon2. Se configuran con un coste, incorporan su propia sal y ese coste se sube conforme mejora el hardware. Si está usted escribiendo un sistema de registro de usuarios, esa es la familia que necesita; este generador no sirve para eso.
Irreversible no significa secreto
Un hash no se deshace: no existe ninguna operación que devuelva el texto original, porque por el camino se ha perdido información. Pero eso no impide adivinarlo. Si el texto es corto y previsible —un DNI, un número de móvil, un correo, una contraseña frecuente—, basta con recorrer todas las posibilidades, calcular el hash de cada una y comparar.
Ese recorrido puede hacerse de antemano y guardarse: en tablas precalculadas o, comprimido en cadenas, en las llamadas tablas arcoíris; y hay servicios que consultan un hash al instante en sus propias bases de hashes y filtraciones. Publicar el SHA-256 de un dato personal para «anonimizarlo» no lo anonimiza: los DNI posibles caben de sobra en un disco duro. Lo que rompe ese ataque es añadir un valor aleatorio propio de cada registro (la sal) o un secreto que no se publica (HMAC).