Forum Pplware
Encriptação MD5 - Versão de Impressão

+- Forum Pplware (http://forum.pplware.com)
+-- Fórum: Mais Tech (/forumdisplay.php?fid=11)
+--- Fórum: Programação e Web (/forumdisplay.php?fid=16)
+--- Tópico: Encriptação MD5 (/showthread.php?tid=9867)



Encriptação MD5 - Wanber - 03-10-2011 23:50

Tenho um formulário de recuperação de senhas, que envia um e-mail com os dados da conta do usuário, mais a senha é enviada como MD5, como faço pra enviar a senha não encriptada em MD5 ?


RE: Encriptação MD5 - Bruno Bernardino - 04-10-2011 10:22

1. MD5 já não é considerado seguro para encriptação. Deverá ser usado SHA-2, pelo menos.
2. MD5 e SHA são encriptações one-way, ou seja, irreversíveis, pois não consegues saber o que lá está (daí ser uma encriptação segura).
3. O que tu deves querer fazer será gerar uma nova password, enviá-la não encriptada, encriptá-la e actualizar na BD (ou onde quer que esteja a ser guardada).


RE: Encriptação MD5 - Mettafox - 04-10-2011 14:24

Como disse o Bruno usa o SHA-2 (SHA128, SHA256 ou SHA512).

Para recuperação da password é simples, uma vez que a password está encriptada de forma irreversível, o sistema não tem como enviar a password para o utilizador, então o que fazes:

1: Crias uma página destinada à recuperação / alteração da password.
2: Crias um token de segurança para garantir que aquela alteração / recuperação só é feita uma vez por sessão, uma vez alterada a password, o token deve morrer, como disse, aquele token só pode ser usado uma vez por sessão e que também só podem aceder à página de recuperação da password se existir um token de segurança válido.
3: Crias um formulário próprio para enviar o email com o link de recuperação (Ex.: meusite.com/recuperacao.php?sec=000000000000000000000000000000).

Todos os sites que enviam a password verdadeira do utilizador, é porque para além de terem na BD a password encriptada eles guardam a password sem estar encriptada, isto é uma falha de segurança muito grave.
Nunca se deve guardar passwords sem estarem encriptadas.


O token de segurança é muito simples de se fazer, basta que cries uma função para criar o token baseado em alguma coisa (Podes usar o SHA-1 ou SHA-2), e logo depois da password ser alterada / recuperada, teres outra função para matar o token.
No momento que o token é criado, tem de ser guardado na BD, para depois ser validado.


Espero ter ajudado.