bcrypt
password_hash / password_verify
Hashea y verifica contraseñas con bcrypt. Equivalente a PHP password_hash/password_verify.
Cómo usar
Descripción general
Herramienta para generar hashes con bcrypt o verificar cadenas hash.
Un caso de uso común del hash es "almacenar contraseñas".
Como principio fundamental, no es posible revertir un hash a los datos originales (unidireccional).
No se puede obtener la contraseña original a partir de su hash bcrypt.
Por eso, las contraseñas no se almacenan directamente — en su lugar, se almacena el hash.
La misma contraseña siempre genera el mismo hash.
Esto significa que puedes verificar una cadena comparándola con un hash conocido.
(Por ejemplo, para comprobar si un hash fue generado a partir de una contraseña dada)
Generación de hash (password_hash)
El hash bcrypt se realiza con un código como el siguiente.$hash = password_hash('string_to_hash', PASSWORD_BCRYPT, [
'cost' => 'cost',
]);
Los hashes generados por bcrypt incluyen un salt (cadena aleatoria), por lo que se produce un resultado diferente cada vez.
$2y$10$Z0kGQ04hCto9dnMu.GyzWOWNQmoKyeF5PXH.zsrf/I.yNJRcbdN86
El costo predeterminado de la función password_hash es 10.
Aunque password_hash acepta un rango de 4–31, esta herramienta lo limita a 4–15 para evitar una carga excesiva del servidor.
(Los valores más altos pueden tardar mucho tiempo en procesarse.)
Verificación de hash (password_verify)
Los hashes bcrypt siguen un formato específico que incluye el salt y el número de iteraciones, lo que permite verificar si un hash fue generado a partir de una cadena dada.
La verificación de hash bcrypt se realiza con un código como el siguiente.$result = password_verify('original_string', 'hash_string_to_verify');