Más alto = más lento + más seguro. El coste 12 tarda unos 4ms en un portátil típico; 10-12 es el rango habitual en producción.
Se ejecuta 100 % en tu navegador - la contraseña y el hash nunca salen de tu dispositivo.
I am storing user passwords for a web app with at most 10 000 users. Compare bcrypt (cost 12), scrypt, and Argon2id for this workload: resistance to GPU cracking, memory requirements, DoS risk on the login endpoint, and the parameters you would actually deploy. Give a concrete recommendation and the exact parameter values.
Qué hace
Bcrypt
HashHashA one-way function that maps data of any size to a fixed-length digest. Same input, same digest; any change, different digest; not reversible.
& Verify calcula el hash de una contraseña con bcrypt - el algoritmo diseñado a propósito para almacenar contraseñas - y comprueba una contraseña contra un hash bcrypt existente. El hash deriva una sal aleatoria nueva de 16 bytes y ejecuta el calendario de claves EksBlowfish2^cost veces, así que controlas exactamente lo caro que es cada intento. La verificación recalcula el resumen con la sal y el coste del propio hashhashA one-way function that maps data of any size to a fixed-length digest. Same input, same digest; any change, different digest; not reversible.
y te dice si coincide. Acepta hashes$2a$, $2b$ y $2y$, así que funciona con hashes producidos por Node, Go, Python, PHP, Java, el pgcrypto de PostgreSQL y toda implementación derivada de OpenBSD.
Todo se ejecuta en tu navegador, con una implementación de Blowfish escrita desde cero (sin bibliotecas criptográficas externas). La contraseña que escribes y el
hashhashA one-way function that maps data of any size to a fixed-length digest. Same input, same digest; any change, different digest; not reversible.
que pegas nunca salen de tu dispositivo.Cómo usarlo
- Elige un modo con el conmutador
HashHashA one-way function that maps data of any size to a fixed-length digest. Same input, same digest; any change, different digest; not reversible.
/ Verificar de la parte superior. HashHashA one-way function that maps data of any size to a fixed-length digest. Same input, same digest; any change, different digest; not reversible.
: escribe la contraseña (el botón del ojo la revela), arrastra el deslizador del factor de coste (4-16, por defecto 12) - más alto significa más lento y más seguro - y pulsa CalcularhashhashA one-way function that maps data of any size to a fixed-length digest. Same input, same digest; any change, different digest; not reversible.
. ElhashhashA one-way function that maps data of any size to a fixed-length digest. Same input, same digest; any change, different digest; not reversible.
$2b$aparece con un botón de copia y una insignia que muestra cuánto tardó.- Verificar: pega el
hashhashA one-way function that maps data of any size to a fixed-length digest. Same input, same digest; any change, different digest; not reversible.
bcrypt y escribe la contraseña a comprobar. La herramienta decodifica el hash en vivo y muestra su versión, coste y sal. Pulsa Verificar contraseña para obtener la insignia verde Coincide ✓ o la roja No coincide ✗. - Usa Ejemplo en cualquiera de los dos modos para cargar entradas de muestra (el ejemplo de verificación es un par real que coincide).
Ejemplos
Calcular el hashhashA one-way function that maps data of any size to a fixed-length digest. Same input, same digest; any change, different digest; not reversible.
Contraseña: hashhashA one-way function that maps data of any size to a fixed-length digest. Same input, same digest; any change, different digest; not reversible.correct horse battery staple → pulsa Calcular
$2b$12$9IZSN8TXXnSIx4aI0Cd2DetqQ/3FT9d6KJ9fl96SnULIK5x5q/moq
Cada ejecución produce un
hashhashA one-way function that maps data of any size to a fixed-length digest. Same input, same digest; any change, different digest; not reversible.
distinto - la sal es aleatoria nueva cada vez - y todos verificarán contra la misma contraseña.Verificar un hashhashA one-way function that maps data of any size to a fixed-length digest. Same input, same digest; any change, different digest; not reversible.
Pega $2a$04$RPx7yiCLNb09VKAUBVNsnOVNzB1Zp/hE1qbDvGUs1aehNX5hE15su con la contraseña password → Coincide ✓. Las insignias lo decodifican como versión $2a$, coste 4, sal RPx7yiCLNb09VKAUBVNsnO.
Leer el formato del hashhashA one-way function that maps data of any size to a fixed-length digest. Same input, same digest; any change, different digest; not reversible.
$2b$12$ + 22 caracteres de sal + 31 caracteres de resumen = 60 caracteres en total. El 12 es el coste: se ejecutaron 2¹² = 4 096 rondas EksBlowfish para construir el calendario de claves.
Buen saber
- Por qué bcrypt gana a un SHA-256 plano para contraseñas: SHA-256 es rápido - exactamente lo que no quieres. Una GPU moderna calcula miles de millones de SHA-256 por segundo, pero solo decenas de miles de hashes bcrypt, porque el factor de coste de bcrypt fuerza 2^cost rondas secuenciales del calendario de claves y su sal elimina las rainbow tables y la reutilización entre cuentas. Por la misma razón, bcrypt también supera a MD5 y SHA-1 de plano - ambos rotos por colisiones y demasiado baratos de calcular.
- El coste es un dial, no una constante: elige el coste más lento que tus usuarios y tu hardware toleren - aproximadamente 250 ms-1 s por
hashhashA one-way function that maps data of any size to a fixed-length digest. Same input, same digest; any change, different digest; not reversible.
en tus servidores de inicio de sesión. Hoy eso significa coste 10-12; súbelo cada pocos años a medida que el hardware acelera. La verificación paga el mismo coste que el hash, así que un coste absurdamente alto también ralentiza tus propios inicios de sesión y puede convertirse en palanca de denegación de servicio sobre el endpoint de login. - Límite de 72 bytes: bcrypt lee como máximo los primeros 72 bytes de la contraseña y esta herramienta sigue esa regla al pie de la letra. El consejo moderno es pre-calcular el
hashhashA one-way function that maps data of any size to a fixed-length digest. Same input, same digest; any change, different digest; not reversible.
con SHA-256 si debes soportar frases de contraseña largas - pero hazlo con cuidado (aplicaHMACHMACA construction that combines a hash function with a secret key to prove a message is intact and came from someone holding the key.
sobre la longitud cruda primero, o heredas las ambigüedades de bytes nulos de SHA-256). - Nunca inventes tu propia comparación: verifica siempre con una comparación en tiempo constante como hace esta herramienta - la igualdad de cadenas sobre hashes filtra información por temporización.
- Alternativas cuando puedes elegir: Argon2id (duro en memoria, ganó la Password
HashingHashingA one-way function that maps data of any size to a fixed-length digest. Same input, same digest; any change, different digest; not reversible.
Competition) y scrypt son más fuertes contra atacantes con GPU/ASIC; bcrypt sigue siendo el punto de partida contrastado y soportado en todas partes. - Herramientas relacionadas: Password Strength Analyser, Password Generator,
HMACHMACA construction that combines a hash function with a secret key to prove a message is intact and came from someone holding the key.
Generator.