Problem com criptografia md5

bom dia pessoal. estou com o seguinte problema
tenho uma tela de cadastro de usuários, onde o usuário coloca sua senha e salva. ele escreve ‘admin’ na senha, por exemplo, e quando for salvar no banco, o sistema criptografa para md5 e salva.
bem, o usuário escreveu ‘admin’ e ficou no banco como '21232f297a57a5a743894a0e4a801fc3.
até ai tudo bem. o login é feito com o spring security, e eu digo na minha configuração que a senha está encriptada com md5 assim:

<security:authentication-provider user-service-ref="userServiceImpl"> <security:password-encoder hash="md5"> </security:password-encoder> ....
o usuário escreve ‘admin’ na tela de login, e loga normalmente.
mas quando eu tenho de editá-lo, na tela de edição, o campo senha aparece com ‘21232f297a57a5a743894a0e4a801fc3’ e não ‘admin’, logo, quando eu altero o nome dele, acontece novamente a criptografia. dessa vez não da senha ‘admin’, mas sim de ‘21232f297a57a5a743894a0e4a801fc3’, que veio do banco.
gostaria de ao editar o usuário, a senha aparecesse como ‘admin’ e não ‘21232f297a57a5a743894a0e4a801fc3’
como proceder?
abraços

[quote=zorba]bom dia pessoal. estou com o seguinte problema
tenho uma tela de cadastro de usuários, onde o usuário coloca sua senha e salva. ele escreve ‘admin’ na senha, por exemplo, e quando for salvar no banco, o sistema criptografa para md5 e salva.
bem, o usuário escreveu ‘admin’ e ficou no banco como '21232f297a57a5a743894a0e4a801fc3.
até ai tudo bem. o login é feito com o spring security, e eu digo na minha configuração que a senha está encriptada com md5 assim:

<security:authentication-provider user-service-ref="userServiceImpl"> <security:password-encoder hash="md5"> </security:password-encoder> ....
o usuário escreve ‘admin’ na tela de login, e loga normalmente.
mas quando eu tenho de editá-lo, na tela de edição, o campo senha aparece com ‘21232f297a57a5a743894a0e4a801fc3’ e não ‘admin’, logo, quando eu altero o nome dele, acontece novamente a criptografia. dessa vez não da senha ‘admin’, mas sim de ‘21232f297a57a5a743894a0e4a801fc3’, que veio do banco.
gostaria de ao editar o usuário, a senha aparecesse como ‘admin’ e não ‘21232f297a57a5a743894a0e4a801fc3’
como proceder?
abraços[/quote]
Se você se desse um pouco ao luxo de entender o MD5 ou algoritmos de hash em geral, poderia saber que atualmente é computacionalmente impossível e/ou inviável fazer algo assim tendo apenas a saída do MD5.
Entrando na parte de colisão, essa saída do MD5 “21232f297a57a5a743894a0e4a801fc3” é gerada por INFINITAS possibilidades de entrada, não só por “admin”, então descobrir qual entrada em específico gerou essa saída “21232f297a57a5a743894a0e4a801fc3” dá um trabalho danado de impossível.

Inté.

O hash MD5 é de uma via, não tem como você pegar o código gerado e converter para o texto original(isso nas condições normais de temperatura e pressão :lol:). Em relação a alteração de senha, a prática comum no mercado é pedir para confirmar a senha atual e informar a nova senha. Eu não me lembro de ter visto um sistema que mostrava a senha em texto puro pro usuário alterar…

E ai zorba, tudo blza?!?

Cara, eu acredito que seja porque a criptografia md5 não tem volta. Ou seja, depois que foi aqueles caracteres malucos pro banco, você nao tem como saber o que foi escrito lá. Sendo assim, não há como vc fazer uma edição do valor, só uma substituição do mesmo, que é o que vemos nos sites por ai…

O seu login funciona porque ele criptografa a senha digitada e compara com a já criptografada do banco…

vou tentar essa aproximação, fabio, obrigado :slight_smile:

e ai kael, blz, e por ai? :smiley:
eu ia perguntar isso, como o login funciona no spring, mas vc ja respondeu :smiley: brigadão cara