Inicio/Tecnologías/Hash de contraseñas: qué es, cómo funciona y cómo protege tus datos
Tecnologías

Hash de contraseñas: qué es, cómo funciona y cómo protege tus datos

El hash de contraseñas es clave para la seguridad digital, evitando el almacenamiento en texto plano y protegiendo la información frente a filtraciones. Descubre cómo funcionan los algoritmos como bcrypt y Argon2, la importancia de la sal y buenas prácticas para proteger tus cuentas en internet.

15 sept 2026
8 min
Hash de contraseñas: qué es, cómo funciona y cómo protege tus datos

El hash de contraseñas es una de las prácticas fundamentales para la seguridad digital y la protección de datos personales. Aunque una contraseña pueda parecer solo una cadena de texto, para los sitios web representa una de las categorías de datos más sensibles. Si un servicio almacena las contraseñas de los usuarios en texto plano, cualquier filtración de la base de datos permite a los atacantes acceder directamente a las cuentas. Por eso, los sistemas modernos emplean hash de contraseñas: una técnica que almacena una representación digital irreversible de la contraseña, no la contraseña en sí.

¿Qué es el hash de contraseñas y cómo funciona?

El hash de contraseñas consiste en transformar la contraseña original en una cadena de longitud fija mediante una función hash especializada. Por ejemplo, la contraseña PixelBurn2026! se convierte, tras este proceso, en un valor completamente diferente, del que no es posible deducir el texto original.

La función hash es unidireccional: es fácil obtener el hash a partir de la contraseña, pero es prácticamente imposible recuperar la contraseña a partir del hash. Esta es la diferencia principal respecto al cifrado, donde los datos pueden recuperarse si se dispone de la clave adecuada, mientras que para el hash tal clave no existe.

Una característica clave del hash es la predictibilidad del resultado: bajo las mismas condiciones, una misma contraseña genera siempre el mismo hash. De esta manera, el sitio puede verificar la validez de la contraseña sin almacenar su valor original.

Además, cualquier pequeño cambio en la contraseña cambia por completo el resultado del hash. Así, "Password123" y "Password124" tendrán hashes completamente distintos, aunque solo difieran en un carácter. No es posible, a partir del hash, deducir si dos contraseñas eran parecidas.

Sin embargo, el hash en sí mismo no es invulnerable. Un atacante no necesita "descifrar" el hash; puede probar diferentes combinaciones de contraseñas, calcular sus hashes y compararlos con los robados. Si encuentra una coincidencia, habrá descubierto la contraseña original. Por ello, la seguridad depende tanto del algoritmo de hash, como de la sal y de los parámetros de dificultad computacional empleados.

¿Cómo almacenan y verifican los sitios las contraseñas?

Cuando un usuario crea una cuenta, el sitio no debe guardar la contraseña tal cual en la base de datos. En su lugar, el servidor procesa la contraseña mediante un algoritmo de hash y almacena solo el resultado, junto con parámetros adicionales necesarios para la posterior verificación.

Al iniciar sesión, el usuario introduce su contraseña, el servidor aplica el mismo algoritmo y compara el nuevo resultado con el almacenado en la base. Si coinciden, se concede el acceso.

Por tanto, un servicio correctamente implementado nunca necesita conocer la contraseña original después del registro. Solo maneja el resultado de su transformación, razón por la cual un sitio seguro no puede mostrarte tu contraseña antigua si la solicitas.

Si olvidas tu contraseña, los servicios seguros no la envían de vuelta, sino que inician un procedimiento de restablecimiento: confirmas tu acceso a la cuenta y defines una nueva contraseña, cuyo hash se almacenará a partir de entonces.

Este enfoque es especialmente importante si ocurre una filtración de la base de datos. Si la base contiene contraseñas en texto plano, el atacante obtiene acceso inmediato a las cuentas. Si solo hay hashes seguros, el atacante debe invertir mucho más tiempo y recursos para descubrir las contraseñas originales, dependiendo del algoritmo, la sal y los parámetros utilizados.

¿Por qué es peligroso almacenar contraseñas en texto plano?

Si un sitio guarda las contraseñas tal cual, cualquier filtración de la base implica la comprometida inmediata de las cuentas. El atacante no necesita adivinar ni descifrar nada: obtiene directamente las combinaciones de login, email y contraseña activa.

El riesgo se agrava por el frecuente reuso de contraseñas por parte de los usuarios: una misma contraseña puede usarse en foros, correo, tiendas online y otros servicios. Así, una filtración en un sitio permite probar las credenciales robadas en muchas plataformas distintas y acceder a múltiples cuentas.

Para saber cómo actuar tras este tipo de incidentes, puedes consultar la guía Cómo comprobar si tus datos han sido filtrados en 2025 y proteger tus contraseñas.

Incluso el hash tradicional resulta insuficiente si se utiliza un algoritmo demasiado rápido. Por ejemplo, SHA-256 es excelente para verificar la integridad de datos, pero no fue diseñado para almacenar contraseñas de forma segura. Las tarjetas gráficas modernas pueden calcular millones de hashes de este tipo en poco tiempo, lo que permite descifrar contraseñas simples mediante fuerza bruta.

El atacante normalmente no intenta invertir la función hash, sino que usa diccionarios de contraseñas comunes, combinaciones de palabras, fechas y símbolos, calcula el hash para cada variante y compara los resultados con la base robada. Cuanto más rápido sea el algoritmo, más pruebas puede realizar por segundo.

Por eso, el almacenamiento seguro de contraseñas implica varios niveles de protección: además del hash, se utiliza una sal única y algoritmos especiales que requieren un esfuerzo computacional importante, haciendo la fuerza bruta mucho más lenta y costosa.

Sal para hash: ¿por qué es necesaria?

Incluso un buen algoritmo de hash se debilita si contraseñas iguales generan siempre el mismo resultado. Si dos usuarios eligen la misma contraseña, sin medidas adicionales, sus hashes serán iguales, lo que facilita el análisis masivo de la base robada y acelera el hallazgo de combinaciones populares.

Para resolver esto se emplea una sal: un valor aleatorio añadido a la contraseña antes de calcular el hash. Cada usuario recibe una sal única. Así, aunque dos usuarios elijan "qwerty123", sus hashes serán completamente diferentes.

Esto impide que el atacante calcule el hash de una contraseña popular una sola vez y localice con facilidad a todos los usuarios con esa combinación.

La sal es especialmente útil contra las tablas rainbow, bases de hashes precalculados de millones de contraseñas comunes. Sin sal, el atacante puede buscar coincidencias instantáneamente; con sal, debe realizar el proceso por separado para cada usuario.

La sal no tiene que ser secreta: normalmente se almacena junto al hash, ya que el servidor la necesita para verificar las contraseñas. Su función es hacer que cada hash sea único, no mantenerse oculta.

Sin embargo, la sal por sí sola no protege una contraseña débil de ataques por fuerza bruta. Si el usuario elige una combinación simple, el atacante puede seguir probando. Por eso, la sal debe emplearse junto a un algoritmo de hash especializado que haga cada intento suficientemente costoso en términos de recursos.

Argon2, bcrypt y otros algoritmos para almacenar contraseñas

No basta con elegir cualquier función hash criptográfica para las contraseñas. Algoritmos como SHA-256 o SHA-512 están diseñados para ser rápidos, lo que es útil para verificar archivos y firmas digitales, pero supone un problema para proteger contraseñas: cuanto más rápido se calcule el hash, más combinaciones podrá probar un atacante.

Por eso, para el hash de contraseñas se usan algoritmos especializados que requieren mucho más tiempo y recursos. Uno de los más conocidos es bcrypt, que permite ajustar la complejidad computacional: a mayor parámetro de coste (cost), más tiempo se necesita para generar un solo hash. Para el usuario, este retardo es imperceptible, pero dificulta enormemente los ataques masivos.

Una opción más moderna es Argon2, que limita al atacante no solo en tiempo sino también en memoria, algo especialmente importante frente a ataques realizados con GPU y hardware especializado. El modo más comúnmente usado para almacenar contraseñas es Argon2id, que combina varias protecciones del algoritmo.

Comparando bcrypt vs Argon2, no se puede decir que bcrypt haya quedado obsoleto: sigue siendo una opción robusta en sistemas reales, siempre que se configure correctamente. Sin embargo, Argon2id suele recomendarse para proyectos nuevos por su mayor flexibilidad y eficiencia en el uso de recursos.

La seguridad depende también de los parámetros del algoritmo. Si la complejidad es demasiado baja, incluso una función moderna será demasiado rápida. Por eso, estos parámetros deben revisarse periódicamente, equilibrando la comodidad para el usuario y la dificultad para los atacantes.

Además, la industria está desarrollando métodos de acceso en los que el usuario no necesita transmitir nunca su contraseña al servidor. Puedes saber más en el artículo Sistemas de seguridad sin contraseñas: qué es la autenticación passwordless y cómo funcionan Passkeys, FIDO2 y WebAuthn.

Conclusión

El hash de contraseñas permite a los sitios web verificar los datos del usuario sin almacenar la contraseña en texto plano. En vez del valor original, en la base de datos solo se guarda el hash, y al iniciar sesión el servidor repite el cálculo y compara los resultados.

Un esquema seguro no se limita a una función hash: una sal única protege de los hashes idénticos, y algoritmos como bcrypt y Argon2id dificultan los ataques masivos al aumentar el coste en tiempo y recursos.

Si un servicio almacena contraseñas como texto plano o usa algoritmos rápidos sin sal, una sola filtración puede poner en riesgo miles de cuentas. Por ello, el principio básico para sistemas modernos es claro: la contraseña nunca debe almacenarse en una forma que pueda leerse o recuperarse directamente.

Etiquetas:

seguridad
contraseñas
hash
protección de datos
algoritmos
sal
filtraciones

Artículos Similares