encrypt - import bcrypt java
¿Debo almacenar la sal con bcrypt? (1)
El javadoc de bCrypt tiene este código para cifrar una contraseña:
String pw_hash = BCrypt.hashpw(plain_password, BCrypt.gensalt());
Para comprobar si una contraseña de texto plano coincide con una que ha sido hash previamente, use el método de verificación:
if (BCrypt.checkpw(candidate_password, stored_hash))
System.out.println("It matches");
else
System.out.println("It does not match");
Estos fragmentos de código implican que la sal generada al azar se descarta. ¿Es este el caso o es solo un fragmento de código engañoso?
La sal se incorpora al hash (codificada en un formato de estilo base64).
Por ejemplo, en las contraseñas tradicionales de Unix, la sal se almacenó como los primeros dos caracteres de la contraseña. Los caracteres restantes representan el valor hash. La función checker lo sabe y separa el hash para eliminar la sal.