Eu preciso armazenar o sal com bcrypt?
-
07-07-2019 - |
Pergunta
de bcrypt javadoc tem este código para saber como criptografar uma senha :
String pw_hash = BCrypt.hashpw(plain_password, BCrypt.gensalt());
Para verificar se uma senha de texto corresponde a um que foi hash anteriormente, use o método checkpw:
if (BCrypt.checkpw(candidate_password, stored_hash))
System.out.println("It matches");
else
System.out.println("It does not match");
Esses trechos de código implica para mim que o sal gerado aleatoriamente é jogado fora. É este o caso, ou é apenas um trecho de código enganosa?
Solução
O sal é incorporado o hash (codificada num formato tipo base 64).
Por exemplo, na tradicional Unix senhas o sal foi armazenado como os dois primeiros caracteres da senha. Os restantes caracteres representado o valor de hash. A função verificador sabe disso, e puxa o hash para além de obter o fora sal para trás.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow