Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

BCryptPasswordEncoder().encode("123456") gera resultados diferentes a cada chamada

Prezados,

Estou reproduzindo o código do curso de Spring Boot API Rest e estou esbarrando em um problema. No momento de gerar a senha encriptada com o código abaixo, a cada invocação ele gera um resultado diferente.

Consequentemente, no ato de autenticar, esses hashs não vão bater com aquele que o Spring obtém na invocação que ele faz lá debaixo dos panos.

Já li alguns posts dizendo que tem que ter um salt. Mas quem define o salt do Spring? Imaginei que existia um salt default ... e por que minha invocação não usa este salt default, fica mandando o que parece ser um salt randômico?

public static void main(String[] args) {
        System.out.println(new BCryptPasswordEncoder().encode("123456"));
}
1 resposta
solução!

Oi Fabiano,

O Spring utiliza um salt automaticamente e por isso os hashes são diferentes a cada chamada.

Mas ao validar a senha é o próprio Spring que executa a lógica e ele sabe validar o salt, sendo que mesmo tendo hashes distintos ele vai conseguir identificar se as senhas estão corretas.

Bons estudos!