Validando troca de senha do usuario logado (Criptografado(MD5))
12 respostas
Tino_
Boa tarde galera,
Estou desenvolvendo aqui no trampo um esquema para trocar a senha do usuário logado,
porem preciso validar a senha antiga para saber se é a mesma.
Porem de novo, pois a senha está criptografada com MD5 como consigo fazer essa validação?
só que o authenticationService.getUsuarioLogado().getPassword() , me retorna um hash
e o passwordEncoder.encode(oldPassword) retorna outro hash
e o metodo usado para critografar a senha é este mesmo encode.
ErickRAR
1- Comparação de strings é com o método equals
2- Se você (espero que né) guardou a senha criptografada no banco, não precisa criptografar de novo para comparar
é só if (criptografar(senhaAntigaDigitadaPeloUsuario).equals(senhaAntigaPegaNoBanco)){…
Tino_
ErickRAR,
rsrs o == está ai pq fiz um teste aqui e esqueci de tirar antes de mandar aqui no post, o código original é com .equals …
e o metodo getUsuarioLogado() está pegando do banco a senha criptografada.
=S
Tino_
Percebi também que toda vez que estou testando e debugando,
o metodo de criptografar gera um hash diferente toda vez.
ou seja, nunca vai ser igual ?
Rafael_Guerreiro
é exatamente o que o ErickRAR falou.
Você vai criptografar a senha DIGITADA apenas.
Rafael_Guerreiro
Tino_:
Percebi também que toda vez que estou testando e debugando,
o metodo de criptografar gera um hash diferente toda vez.
ou seja, nunca vai ser igual ?
Então a sua criptografia está MUITO errada. Veja se você não está usando nenhuma data para compô-la.
Tino_
A criptografia utilizada aqui na empresa é
o metodo encode, que pelo oq olhei aqui é spring security…
tem algo a ver?
Tino_
Rafael_Guerreiro
Você não entendeu, olhe primeiro, o que vc está usando para ser criptografado.
Depois, procure dentro do código do Spring como que ele faz isso.