Criptografia

5 respostas
L

Alo pessoal, eu usei a classe do TomCat MdH5 para criptografar as passwords quando forem registadas na base de dados.Agora preciso de recuperar as passwords criptografadas. Alguem conhece uma classe que me possa ajudar??

5 Respostas

Fernandojdk

Vc precisa recuperar estas passwords pra quê…???

Para verificar se o usuário informou um login correto???

Acho que não seria muito seguro recuperar o password e sim pegar a password que o usuario informou, encriptar com o mesmo algoritimo e verificar se o resultado é igual ao resultado que está no BD…

Deu pra entender???

T

MDH5 é o nome de uma enzima (“malate dehydroxygenase”), portanto deve ser MD5 o que você está perguntando.

Não é possível recuperar a senha a partir do MD5.

Para você entender o que o MD5 faz com suas senhas, vou fazer uma analogia: suponha que todas as senhas fossem numéricas, mas o sistema que fosse armazenar as senhas, em vez de armazenar o valor dela (cifrado ou não), só fizesse uma conta sobre a senha, e armazenasse o resultado dessa conta - por exemplo, pegasse o número, o dividisse por 1234577 e pegasse o resto. Imagine também que essa conta desse o mesmo resultado para várias senhas diferentes - por exemplo, para a senha = 11112430 você teria o resto 1237, e para a senha = 13581584 você também teria o resto 1237 - ou seja, você não poderia voltar atrás porque teria várias possibilidades (ou “colisões” no jargão dos criptógrafos).
Mas de qualquer maneira, se você armazenasse no seu banco de senhas o resultado “1237” você saberia que se alguém digitasse a senha correta (11112430) o resto da divisão por 1234577 seria 1237 e você deixaria entrar no seu sistema.

Agora, porque se usa o MD5?
a) Porque o MD5 é uma fórmula muito mais complicada que uma simples divisão. Por exemplo, o MD5 dá resultados muito diferentes se você alterar apenas um dígito - aliás, todos os dígitos do resultado do MD5 ficam diferentes. Portanto não dá para saber uma senha conhecendo um pedaço dela, sem usar a força bruta.
b) Porque calcular o MD5 é bem mais lento que uma simples divisão; se você usar a força bruta vai levar mais tempo;
c) Porque achar colisões (ou seja, senhas que têm o mesmo MD5) é muito difícil, quase improvável.

Usar o MD5 puro não é legal porque há sites que fornecem senhas se você souber o MD5 delas. Procure por “salt” e “pepper” para saber como não se usa o MD5 “puro”.

T

É óbvio que o que escrevi sobre o MD5 deve ser tomado com um pouco de cautela.
Se você procurar por “collisions” e “MD5” vai ver que existe até um programa que permite encontrar 2 seqüências de 128 bytes que têm o mesmo MD5.
Mas isso não quer dizer que o MD5 está “furado” -
a) Ainda não inventaram um programa que permita determinar uma seqüência que tenha exatamente o mesmo MD5 de uma seqüência dada (como é o caso de uma senha);
b) De qualquer maneira, é necessário reforçar a necessidade do uso de senhas fortes, já que as senhas fracas (as que têm poucas letras, ou as que podem ser encontradas em um dicionário) podem ser achadas por força bruta, por melhor que seja o algoritmo.

Fernandojdk

Putz… Valew pela explicação, dessa eu ainda não sabia…

Muito obrigado…

É vivendo e aprendendo… Vlw…

L

Obrigado, a sua ajuda foi-me muito satisfatória. Até a próxima :smiley:

Criado 29 de novembro de 2007
Ultima resposta 29 de nov. de 2007
Respostas 5
Participantes 3