Cálculo BCrypt

Calcula el hash BCrypt de un texto en el navegador. El texto no se envía al servidor.

Texto
Rondas

※El hash se calcula en tu navegador. Ni el texto ingresado ni el hash calculado se envían al servidor.

Qué es un hash BCrypt

BCrypt es un algoritmo de hash diseñado expresamente para almacenar contraseñas. A diferencia de funciones rápidas como SHA-256, su rasgo decisivo es que el cálculo se hace pesado a propósito, lo que frena físicamente la velocidad a la que un atacante puede probar grandes cantidades de candidatos. Con esta herramienta indica una cadena cualquiera y un número de rondas y genera en el acto un hash BCrypt real.

El cálculo lo realiza por completo el JavaScript de su navegador, así que ni la cadena que teclea ni el hash resultante se envían a un servidor. Dicho esto, si va a emplear un hash generado aquí como contraseña en producción, vuelva a fijar el número de rondas según el rendimiento del servidor en el que realmente opera. Un ajuste cómodo en la máquina que tiene delante no supone necesariamente un tiempo de respuesta razonable en producción.

Cómo calcular un hash BCrypt

  1. Introduzca la cadena que quiere convertir en hash Teclee la contraseña u otro objetivo en el campo de la cadena. Lo que introduce no sale de su navegador.
  2. Decida el número de rondas El número de rondas también se llama factor de coste, y cada incremento duplica aproximadamente el tiempo de cálculo. Si no tiene un requisito concreto, empiece probando 10.
  3. Ejecute el cálculo Pulse el botón de calcular y aparecerá el valor del hash. Cuanto mayor sea el número de rondas, más esperará por el resultado.
  4. Observe cómo está construido el resultado La salida une el identificador de algoritmo, el número de rondas, la sal y el propio hash en una sola cadena. Guardar esa única cadena es cuanto necesita para verificar después.

Consejos para aprovecharla mejor

  • BCrypt añade automáticamente un salt, por lo que la misma entrada produce un hash diferente cada vez que se hashea.
  • Aumentar el número de rondas (factor de coste) incrementa el coste computacional, mejorando la resistencia a ataques de fuerza bruta. Se recomienda un valor de 10–12.
  • En PHP usa password_hash($password, PASSWORD_BCRYPT); en Ruby usa el gem bcrypt-ruby para generar hashes equivalentes.
  • El prefijo $2y$ en el hash es el identificador del algoritmo; el número que le sigue es el número de rondas.
  • Considera también el más nuevo Argon2 (disponible desde PHP 7.2) como otro algoritmo adecuado para almacenar contraseñas. Pruébalo con nuestra Calculadora de hash Argon2.

Cuándo resulta útil calcular un hash BCrypt

Preparar usuarios de prueba durante el desarrollo

Cuando quiera insertar una cuenta de prueba directamente en la base de datos, construya aquí el hash de la contraseña que prefiera e insértelo. Así se ahorra por completo arrancar la aplicación.

Hacerse una idea de la relación entre rondas y tiempo de proceso

Calcule la misma cadena cambiando solo el número de rondas y verá el tiempo duplicarse de verdad con cada incremento. Le da algo concreto sobre lo que fundar el ajuste de producción.

Descifrar los ajustes de un hash existente

Compárelo con un hash guardado en un sistema que usted opera y sabrá con qué número de rondas está funcionando ese sistema.

Comparar con otros algoritmos

Calcule la misma cadena también con Argon2 y alinee los formatos de salida y los tiempos requeridos: ya tiene una base para decidir entre ambos.

El vocabulario de BCrypt

Sal
Un valor aleatorio que se añade a la cadena antes del hash. Como el valor almacenado difiere incluso para la misma contraseña, impide un descifrado masivo mediante una tabla precalculada.
Número de rondas
Llamado también factor de coste, este ajuste determina cuántas veces se repite el cálculo. Cada incremento duplica aproximadamente el tiempo necesario.
Factor de coste
Otra manera de nombrar lo mismo que el número de rondas. Expresa hasta dónde se hace pesado el cálculo a propósito, para frenar el ritmo de los intentos de un atacante.
Tabla arcoíris
Una tabla preparada que enumera las contraseñas habituales junto a sus valores de hash. En cuanto hay una sal, los valores dejan de coincidir y el ataque deja de funcionar.
Identificador de algoritmo
La marca como $2y$ al principio de una cadena de hash. Quien verifica la usa para reconocer con qué método se produjo.
Argon2
Un método más reciente, elegido en la Password Hashing Competition de 2015. Además del tiempo de cálculo permite indicar también la memoria requerida, lo que se considera que lo hace resistente a los ataques con hardware dedicado.

Preguntas frecuentes

BCrypt genera e incrusta automáticamente un salt aleatorio en cada operación de hash, por lo que entradas idénticas siempre producen hashes distintos. Al verificar, funciones como password_verify() leen el salt incrustado en el hash almacenado para realizar la comparación.

Se recomienda generalmente un valor de 10–12. Demasiado bajo facilita los ataques de fuerza bruta; demasiado alto ralentiza el inicio de sesión. Una buena guía es elegir un valor donde un solo hash tarde aproximadamente 100–300 ms en tu servidor.

Sí: esta herramienta usa el algoritmo BCrypt estándar, por lo que el hash resultante puede verificarse con password_verify() de PHP o funciones equivalentes en otros lenguajes. Ten cuidado con el manejo de cualquier entrada sensible.
Tool-kun

A propósito — La batalla de contraseñas y hashes: por qué se elige BCrypt

En la filtración de LinkedIn en 2012, aproximadamente 6,5 millones de contraseñas se almacenaron usando solo SHA-1 sin salt, y la mayoría fueron crackeadas en días mediante ataques de tabla arcoíris. Este incidente fue una llamada de atención para el diseño del almacenamiento de contraseñas.

Una GPU moderna de alto rendimiento (como la NVIDIA RTX 4090) puede calcular MD5 aproximadamente 68.000 millones de veces por segundo. BCrypt está diseñado intencionalmente para ser costoso computacionalmente — con 12 rondas, está limitado a unos pocos miles de cálculos por segundo — lo que le da una resistencia dramáticamente mayor a los ataques de fuerza bruta. Con el mismo hardware, podrías intentar 68.000 millones de intentos MD5 por segundo, pero solo unos pocos miles de BCrypt. Esa diferencia es crítica.

BCrypt fue diseñado originalmente para OpenBSD en 1999. Más de 20 años después, sigue en uso activo y, junto con el más nuevo Argon2 (disponible desde PHP 7.2), es una de las opciones estándar para el almacenamiento de contraseñas.