Generador y Verificador de Hash Bcrypt

Genera un hash bcrypt de contraseña o verifica una contraseña contra un hash existente, todo en tu navegador. Las contraseñas nunca salen de tu dispositivo.

🌐 English

🔒 Privado por diseño: tu texto se procesa localmente en tu navegador; nada se sube nunca a ningún servidor.

Cómo generar o verificar un hash bcrypt

  1. Pega la contraseña en el primer recuadro (llamado “Texto original”).
  2. Elige un modo: “Generar un hash nuevo” (por defecto) o “Verificar una contraseña contra un hash existente”.
  3. Para generar: elige un factor de coste (10 es un buen valor por defecto) y haz clic en el botón, el segundo recuadro (“Texto modificado”) se ignora en este modo. Para verificar: pega el hash bcrypt existente en el segundo recuadro (“Texto modificado”) en su lugar, y luego haz clic en el botón.
  4. Lee el resultado: un hash recién generado en modo Generar, o un veredicto claro de COINCIDE / NO COINCIDE / FORMATO DE HASH INVÁLIDO en modo Verificar.

Sin instalación, sin cuenta, tanto el hasheo como la verificación bcrypt ocurren en el instante en que haces clic, usando la librería bcryptjs ejecutándose localmente en tu pestaña del navegador.

Por qué generar un hash bcrypt en lugar de MD5 o SHA-256

Almacenar una contraseña en texto plano nunca es aceptable, pero un hash rápido y de propósito general (MD5, SHA-1, incluso SHA-256) también es la herramienta equivocada para el trabajo: el hardware moderno puede calcular miles de millones de esos hashes por segundo, lo que hace que forzar por fuerza bruta una base de datos de contraseñas robada sea alarmantemente rápido. Bcrypt se diseñó específicamente para resistir esto, realiza deliberadamente un número configurable de rondas internas (el “factor de coste”), así que se mantiene lento de forzar por fuerza bruta incluso a medida que el hardware mejora, e incluye una sal aleatoria en cada hash para que las contraseñas idénticas nunca produzcan hashes idénticos. Por eso bcrypt (y algoritmos similares como scrypt y Argon2) sigue siendo una recomendación estándar para almacenar de verdad contraseñas de usuario, en contraste con las sumas de comprobación rápidas para las que están construidas las otras herramientas de hash de este sitio (MD5, SHA-256, SHA-512).

Tus contraseñas nunca salen de tu dispositivo

Muchos sitios “bcrypt online” y “generador bcrypt” funcionan enviando la contraseña que escribes directamente a un servidor para calcular el hash, algo extraño de hacer con algo tan sensible como una contraseña real (o incluso de prueba), ya que no hay forma de verificar desde fuera que no se registró en el camino. Esta herramienta nunca necesita un viaje de ida y vuelta a un servidor en absoluto: bcryptjs, una implementación pequeña y pura en JavaScript de bcrypt, ejecuta toda la operación de hash o verificación dentro de tu propia pestaña del navegador. Lo que sea que escribas, y cualquier hash que pegues para comprobar, nunca se transmite, registra ni almacena en ningún sitio.

Entendiendo el factor de coste

El factor de coste de bcrypt ajusta el número de rondas internas de hasheo como una potencia de dos, el coste 10 significa 2^10 (1.024) rondas, el coste 12 significa 2^12 (4.096) rondas, y así sucesivamente. Cada +1 al factor de coste aproximadamente duplica el tiempo que tarda un solo hash en calcularse. Ese es todo el punto: un hash lento es exactamente lo que hace impracticable forzar por fuerza bruta una lista de contraseñas robada, ya que un atacante tiene que pagar ese mismo coste por cada intento. Esta herramienta limita el factor de coste seleccionable a 12, cómodamente por debajo de un cuarto de segundo por hash en JavaScript puro, verificado directamente contra la librería que usa esta herramienta, porque bcrypt en JavaScript puro (sin aceleración de hardware dedicada) se vuelve notablemente lento bastante antes del máximo teórico propio de bcrypt: el coste 16 ya tarda varios segundos, y el coste 18 o superior puede tardar diez segundos o más para un solo hash, todo en el hilo principal de tu navegador.

Usos habituales

Cómo funciona, en imágenes

Captura de pantalla de la herramienta Generador y Verificador de Hash Bcrypt con la entrada de ejemplo «a-strong-demo-password», Mode en Generate a new hash, Cost factor (2^cost rounds), generate mode only en 10
Generador y Verificador de Hash Bcrypt en pleno proceso: la entrada de ejemplo «a-strong-demo-password», Mode en Generate a new hash, Cost factor (2^cost rounds), generate mode only en 10.
Captura de pantalla del resultado de Generador y Verificador de Hash Bcrypt mostrando la salida generada «=== BCRYPT HASH GENERATOR & VERIFIER === Mode: G…»
El resultado final: la salida generada «=== BCRYPT HASH GENERATOR & VERIFIER === Mode: G…». El enlace de descarga es una URL blob local: el archivo nunca sale de tu dispositivo.

Preguntas frecuentes

¿En qué recuadro pego la contraseña, y cuál es el recuadro del hash?

Esta herramienta reutiliza el diseño genérico de comparación de dos recuadros de texto del sitio, así que las etiquetas son genéricas. Pega siempre la contraseña en el recuadro llamado "Texto original". En modo Generar, el segundo recuadro ("Texto modificado") se ignora. En modo Verificar, pega el hash bcrypt existente que quieres comprobar en ese segundo recuadro.

¿Se envía mi contraseña a algún servidor?

No. Tanto el hasheo como la verificación se ejecutan enteramente dentro de tu pestaña del navegador usando bcryptjs, una pequeña implementación de bcrypt en JavaScript sin ningún componente de servidor. Tu contraseña, y cualquier hash que pegues para verificar, nunca salen de tu dispositivo, una diferencia real frente a herramientas "bcrypt online" competidoras que envían silenciosamente tu contraseña a un backend para calcular el hash.

¿Por qué generar un hash para la misma contraseña dos veces da un resultado diferente?

Eso es bcrypt funcionando correctamente, no un fallo. Cada hash que produce bcrypt incluye una nueva sal aleatoria en la salida, precisamente para que la misma contraseña nunca produzca el mismo hash dos veces, esto frustra los ataques de "tabla arcoíris" precalculada. Para comprobar una contraseña más tarde, usa el modo Verificar de esta herramienta (o la función de comparación propia de bcrypt en código), nunca una comparación de cadenas simple contra un hash almacenado previamente.

¿Qué controla exactamente la opción "factor de coste", y por qué tiene un tope de 12?

El factor de coste ajusta cuántas rondas de hasheo realiza bcrypt internamente (2^coste rondas), costes más altos son deliberadamente más lentos, que es exactamente lo que hace a bcrypt resistente a adivinar contraseñas por fuerza bruta. Medido directamente contra la librería JavaScript que usa esta herramienta, el coste 10 tarda alrededor de 50 ms y el coste 12 alrededor de 200 ms, pero el tiempo se duplica con cada +1 después de eso, el coste 16 ya tarda varios segundos y el 18+ puede tardar más de diez segundos en JavaScript puro (sin aceleración de hardware dedicada, a diferencia de una implementación nativa de bcrypt). La opción tiene un tope de 12 para que un clic curioso no pueda congelar accidentalmente la pestaña durante minutos; 10 es un valor por defecto habitual y bien considerado en el mundo real.

¿Qué pasa si pego un hash inválido o mal formado en el modo Verificar?

La herramienta comprueba que el texto pegado realmente tiene la forma de un hash bcrypt real (empezando por $2a$, $2b$ o $2y$, un factor de coste de 2 dígitos, luego más caracteres, 60 en total) antes de intentar nada. Si no es así, recibes un mensaje claro de "formato de hash inválido" en lugar de un confuso falso "no coincide" o un fallo, así sabes de inmediato que el problema es el hash pegado, no la contraseña.

¿Hay un límite de longitud de contraseña?

Bcrypt en sí solo usa los primeros 72 bytes de una contraseña (cualquier cosa después se ignora silenciosamente por el algoritmo), una característica de bcrypt bien documentada y de larga data, no específica de esta herramienta. Para cualquier contraseña realista (incluso una frase larga y memorable), este límite rara vez es relevante en la práctica.

¿En qué se diferencia esto de los generadores de hash MD5, SHA-256 y SHA-512 de este sitio?

MD5/SHA-256/SHA-512 son funciones hash rápidas y de propósito general pensadas para sumas de comprobación y verificación de integridad, esa velocidad las hace poco adecuadas para almacenar contraseñas, ya que un hash rápido permite a un atacante que roba una base de datos de contraseñas probar miles de millones de intentos por segundo. Bcrypt es un algoritmo de hasheo de contraseñas lento y construido específicamente para eso, con una sal aleatoria integrada y un factor de coste ajustable precisamente para poder mantenerse lento a medida que el hardware mejora, la herramienta correcta cuando el trabajo es realmente almacenar o comprobar una contraseña, no solo tomar la huella de un texto arbitrario.

Herramientas relacionadas