Seguridad de contraseñas en el navegador: genera, cifra, hashea y comprueba — sin servidor
Una guía práctica sobre herramientas de contraseñas y cifrado basadas en el navegador: genera contraseñas seguras, cifra texto con AES-256, hashea contraseñas con PBKDF2 y comprueba tu seguridad al instante.
Todo desarrollador y usuario preocupado por la seguridad necesita eventualmente el mismo conjunto de herramientas: generar una contraseña robusta, cifrar un texto sensible, hashear una contraseña para almacenarla o verificar que un hash coincide. Antes, esto requería instalar OpenSSL o una aplicación dedicada. Hoy en día, la Web Crypto API es lo suficientemente potente como para hacerlo todo dentro del navegador — sin viajes al servidor y sin que ningún dato salga de tu dispositivo.
Aquí tienes un recorrido por las herramientas esenciales y cómo sacarle el máximo partido a cada una.
1. Generador de contraseñas: la forma correcta de crearlas
Los humanos somos pésimos creando contraseñas aleatorias. Inconscientemente usamos patrones — palabras del diccionario, nombres, años, secuencias de teclado como qwerty123. Un generador de contraseñas verdaderamente aleatorio evita todo esto.
Nuestro Generador de Contraseñas utiliza crypto.getRandomValues() — el generador de números aleatorios criptográficamente seguro integrado en todos los navegadores modernos. Lo que lo diferencia de Math.random():
Math.random()es una secuencia pseudoaleatoria — predecible si conoces la semillacrypto.getRandomValues()obtiene entropía a nivel del sistema operativo — verdaderamente impredecible
Configuración recomendada:
| Caso de uso | Longitud | Opciones |
|---|---|---|
| Inicio de sesión en sitio web | 16+ | Mayúsculas, minúsculas, números, símbolos |
| Contraseña de base de datos | 24+ | Todos los conjuntos de caracteres |
| Frase de contraseña para clave de cifrado | 32+ | Todos los conjuntos de caracteres |
| PIN (desbloqueo de dispositivo) | 8+ | Solo números |
Qué evitar:
- Contraseñas de menos de 12 caracteres (vulnerables por fuerza bruta con GPUs modernas)
- Contraseñas solo con símbolos (muchos servicios las rechazan)
- Contraseñas que hayas usado en cualquier otro lugar
2. Comprobador de fortaleza de contraseñas: evalúa antes de confirmar
Antes de establecer una contraseña — o al auditar las existentes — pásala por nuestro Comprobador de Fortaleza de Contraseñas. Evalúa:
- Puntuación por longitud — más larga siempre es mejor
- Diversidad de caracteres — minúsculas, mayúsculas, dígitos, símbolos
- Patrones comunes — palabras del diccionario, secuencias de teclado, caracteres repetidos
- Bits de entropía — la medida matemática de lo difícil que es adivinarla
La puntuación de entropía es la medida más honesta. Una contraseña con 128 bits de entropía tardaría más tiempo en romperse por fuerza bruta que la edad del universo, con la velocidad de cómputo actual.
"password" → Entropía: ~11 bits ❌ Terrible
"P@ssw0rd" → Entropía: ~18 bits ❌ Sigue siendo terrible (patrón)
"correct-horse-bat" → Entropía: ~44 bits ⚠ Moderada (palabras del diccionario)
"Kx9#mP2$vL7nQw" → Entropía: ~87 bits ✅ Fuerte
"mQ3$kX9#nP7&vL2@" → Entropía: ~104 bits ✅ Muy fuerte
3. Cifrado AES-256: protege texto con cifrado de nivel militar
¿Necesitas guardar una nota secreta, cifrar un valor de configuración o enviar texto sensible por un canal inseguro? Nuestra herramienta AES Encrypt / Decrypt usa AES-256-GCM — el mismo cifrado que utilizan bancos, gobiernos y aplicaciones de mensajería con cifrado de extremo a extremo.
Cómo funciona AES-256-GCM (simplificado)
- Tu frase de contraseña se procesa mediante PBKDF2 con 200.000 iteraciones para derivar una clave de 256 bits
- Se genera un IV (vector de inicialización) aleatorio para cada cifrado — garantiza que un texto idéntico se cifre de forma diferente cada vez
- El texto plano se cifra y se genera una etiqueta de autenticación — detecta manipulaciones
- La salida se codifica en base64:
IV + etiqueta + texto cifrado
Texto plano: "API_KEY=sk_live_abc123"
Frase de contraseña: "my-strong-passphrase"
↓
Cifrado: "a3Fm9K2...base64...Xp7nQ=="
Propiedades de seguridad:
- ✅ Conocimiento cero — no se envía nada a ningún servidor
- ✅ Cifrado autenticado — el descifrado falla si el texto cifrado fue manipulado
- ✅ Aleatorización de salt + IV — la misma entrada produce una salida diferente cada vez
- ✅ 200.000 iteraciones PBKDF2 — resistente a ataques de fuerza bruta sobre la frase de contraseña
Usos prácticos:
- Cifrar valores de
.envantes de guardarlos en una aplicación de notas - Compartir una contraseña con un compañero por email/Slack (envía el texto cifrado; comparte la frase de contraseña por un canal diferente)
- Cifrar entradas de diario o notas personales
- Guardar API keys en una hoja de cálculo en forma cifrada
4. Generador de hashes de contraseñas: PBKDF2 para almacenamiento seguro
Si estás desarrollando una aplicación que almacena contraseñas de usuarios, nunca debes guardar contraseñas en texto plano — ni hashes débiles como MD5/SHA-1. Nuestro Generador de Hashes de Contraseñas usa PBKDF2-SHA256 para crear hashes de contraseñas seguros.
¿Por qué PBKDF2 y no MD5/SHA-256?
| Hash | Tiempo por intento (GPU) | Iteraciones | Veredicto |
|---|---|---|---|
| MD5 | 0,001ms | 1 | ❌ Roto |
| SHA-256 | 0,002ms | 1 | ❌ Demasiado rápido |
| PBKDF2-SHA256 | 200ms+ | 200.000 | ✅ Adecuado |
| bcrypt (cost 12) | 300ms+ | adaptativo | ✅ Adecuado |
El objetivo del hasheo de contraseñas es hacer que cada intento sea costoso. Los hashes rápidos son catastróficamente malos para las contraseñas.
Formato de salida del hash:
pbkdf2$200000$<salt>$<hash>
El salt es aleatorio por cada hash, lo que significa que la misma contraseña produce un hash diferente cada vez — evitando los ataques de tablas arcoíris.
5. Generador TOTP / 2FA: prueba tus códigos de autenticación
Nuestro Generador TOTP / 2FA genera contraseñas de un solo uso basadas en tiempo, compatibles con Google Authenticator, Authy y cualquier aplicación de autenticación compatible con RFC 6238. Introduce una clave secreta en Base32 y obtén el código actual de 6 dígitos con cuenta atrás.
Casos de uso:
- Verificar que la implementación TOTP de tu servidor genera los códigos correctos
- Probar una configuración 2FA antes de desplegarla a los usuarios
- Generar códigos para un secreto que ya has registrado (como método de respaldo)
Los códigos TOTP cambian cada 30 segundos, están vinculados a la hora UTC actual y es matemáticamente imposible predecirlos sin la clave secreta.
6. Frases de contraseña Diceware: memorables y matemáticamente seguras
Nuestro Generador de Contraseñas Diceware crea frases de contraseña a partir de la lista de palabras de la EFF — el mismo enfoque que usan los investigadores de seguridad para contraseñas maestras y claves de cifrado de disco.
Ejemplo: correct-horse-battery-staple-voyage
Por qué las frases de contraseña superan a las contraseñas de caracteres aleatorios como contraseñas maestras:
| Contraseña | Entropía | Facilidad de memorización |
|---|---|---|
Kx9#mP2$ (8 caracteres) |
~52 bits | Muy difícil |
correct-horse-battery (3 palabras) |
~58 bits | Fácil |
correct-horse-battery-staple (4 palabras) |
~77 bits | Moderada |
correct-horse-battery-staple-voyage (5 palabras) |
~96 bits | Manejable |
Para la contraseña maestra de un gestor de contraseñas — que debes memorizar y nunca apuntar — una frase de contraseña Diceware de 5 palabras es el mejor equilibrio entre seguridad y memorabilidad.
Lista de verificación de seguridad
Repasa esto antes de desplegar cualquier sistema de autenticación:
- ✅ Genera contraseñas con el Generador de Contraseñas — usa
crypto.getRandomValues() - ✅ Verifica la fortaleza con el Comprobador de Fortaleza de Contraseñas — apunta a 80+ bits de entropía para cuentas privilegiadas
- ✅ Hashea las contraseñas almacenadas con PBKDF2, bcrypt o Argon2 — verifica el formato de salida con el Generador de Hashes de Contraseñas
- ✅ Cifra los valores sensibles en reposo con AES Encrypt — usa AES-256-GCM, no AES-ECB
- ✅ Activa el 2FA y prueba los códigos con el Generador TOTP
- ✅ Para contraseñas maestras, usa el Generador Diceware — mínimo 5 palabras
La idea clave: todas las herramientas de esta lista funcionan completamente en tu navegador. Tus contraseñas, textos planos y hashes nunca abandonan tu dispositivo. Eso no es una característica — es el estándar mínimo aceptable para cualquier herramienta de seguridad.