Validando troca de senha do usuario logado (Criptografado(MD5))

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?

Simples, criptografe a nova senha e veja se são iguais.

Então Guerreiro, eu já tentei isso. Porem não saem iguais as criptografias, é pra ser igual?

Com a mesma senha sim, com senhas diferentes não.

Então se o user quer TROCAR a senha, você deve deixar ele trocar caso as duas senhas criptografadas sejam diferentes.

então fiz o esquema que vc falou, debuguei aqui…

	private boolean verifyPassword()
	{
		if(authenticationService.getUsuarioLogado().getPassword() == passwordEncoder.encode(oldPassword)){
			return true;
		}

		return false;
	}

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.

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)){…

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

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 ?

é exatamente o que o ErickRAR falou.

Você vai criptografar a senha DIGITADA apenas.

[quote=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 ?
[/quote]
Então a sua criptografia está MUITO errada. Veja se você não está usando nenhuma data para compô-la.

A criptografia utilizada aqui na empresa é

o metodo encode, que pelo oq olhei aqui é spring security…

tem algo a ver?

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.