Criptografia  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
lindo
What is classpath?

Membro desde: 24/07/2007 11:57:39
Mensagens: 9
Offline

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??
Fernandojdk
Thread.start()
[Avatar]

Membro desde: 21/11/2007 00:45:13
Mensagens: 44
Localização: Miguelópolis-SP
Offline

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????

"Não existe derrote que derrote uma pessoa que nasceu para vencer"
[MSN]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

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".



[WWW]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

É ó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.
[WWW]
Fernandojdk
Thread.start()
[Avatar]

Membro desde: 21/11/2007 00:45:13
Mensagens: 44
Localização: Miguelópolis-SP
Offline

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

Muito obrigado...

É vivendo e aprendendo.... Vlw...

"Não existe derrote que derrote uma pessoa que nasceu para vencer"
[MSN]
lindo
What is classpath?

Membro desde: 24/07/2007 11:57:39
Mensagens: 9
Offline

Obrigado, a sua ajuda foi-me muito satisfatória. Até a próxima
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team