"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿La sal generada aleatoriamente afecta la verificación de contraseña con bcrypt?

¿La sal generada aleatoriamente afecta la verificación de contraseña con bcrypt?

Publicado el 2024-11-10
Navegar:392

Does Randomly Generated Salt Affect Password Verification with bcrypt?

bcrypt y sales generadas aleatoriamente

Antecedentes

bcrypt es un algoritmo de hash de contraseñas que utiliza salting para mejorar la seguridad. Salting implica incorporar datos aleatorios en el hash de la contraseña, lo que garantiza que incluso contraseñas idénticas produzcan resultados hash diferentes.

Generación de sal y hash

La clase PHP proporcionada incluye una función llamada genSalt() que genera una sal aleatoria usando la función openssl_random_pseudo_bytes(). Esta sal luego se usa como parte del proceso de hash de bcrypt en la función genHash().

La función genHash() toma una contraseña y la combina con la sal generada aleatoriamente. El hash resultante es una mezcla de la contraseña original, salt y un prefijo específico del algoritmo ($2y$) que indica el algoritmo bcrypt y sus parámetros (por ejemplo, factor de carga de trabajo).

Verificación de contraseña

Para verificar una contraseña, la función verificar() proporcionada compara la contraseña ingresada con el hash almacenado. Para ello, concatena la contraseña proporcionada con el hash almacenado y utiliza la función crypt() para volver a aplicar el hash.

Comprensión de la lógica de comparación de hash

La clave para comprender por qué la sal generada aleatoriamente no afecta la verificación de la contraseña es examinar el formato del hash almacenado. El hash consta de dos partes principales:

  1. Un prefijo de algoritmo ($2y$), factor de carga de trabajo (p. ej., 10) y sal (p. ej., abcdefg...)
  2. La contraseña hash

Cuando la función verificar() codifica la contraseña proporcionada con el hash almacenado, utiliza solo la porción salt como entrada. Esto garantiza que la sal se incorpore al proceso de verificación.

Conclusión

En resumen, mientras que bcrypt genera sales aleatorias para garantizar la seguridad de la contraseña, el proceso de verificación de contraseña solo tiene en cuenta la porción de sal de el hash almacenado. Esto permite verificar la contraseña proporcionada con el hash almacenado, aunque el salt se genere aleatoriamente.

Declaración de liberación Este artículo se reimprime en: 1729415415 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3