Pessoal,
Pesquisei, fucei, testei... mas não ntendi muito bem a lógica do md5...
Para usar, por exemplo, para guardar dados no BD.
Digamos que minha senha é "teste" e que ao gravar no MySQL com md5 fique algo como "sdpo12312odpoasd1222", certo?
Como faço para saber que esse monte de letrinha e numero significa "teste"?
Vi alguns comentário de que não é possível decriptar, mas se digitar "teste" denovo vai ser idêntico... ta certo?
E qual o limite de caracteres, uma vez que, pelo que vi, sempre vai ter no md5 uma string de 32 caracteres....
Já fui no manual php, no RFC, busca do forum, mas to ficando cada vez mais confuso... heheheh
Valeu!!
Md5
Started By Alexx Ares, 22/12/2004, 14:06
7 replies to this topic
#1
Posted 22/12/2004, 14:06
||| PENSE NISSO ||| O ser humano, dizem, deve dormir 8 horas por dia. Isso equivale a 1 terço do seu dia dormindo. Agora imagine a seguinte situação: você, com 75 anos, prestes a morrer, olha para trás e percebe que dormiu 1 terço da sua vida, ou seja, 25 anos. Cara... 25 ANOS DORMINDO !!! Se você tem menos de 25 anos, simplesmente você vai dormir mais do que viveu até hoje!!! Pense nisso... e durma menos.
#2
Posted 22/12/2004, 14:10
Olha só... vamos supor que vc usa um banco de dados pra guardar essa senha..
No cadastro, vc digitou "teste" e gravou "fdkvfjbvvsdvsdh"...
significa que sempre que vc digitar "teste" vai ser igual a "fdkvfjbvvsdvsdh", com o md5..
Então, no mesmo exemplo do BANCO DE DADOS, vc pega a variável que o usuario digitou a senha, coloca o md5 nela e faz a verificação já com o mD5..
No cadastro, vc digitou "teste" e gravou "fdkvfjbvvsdvsdh"...
significa que sempre que vc digitar "teste" vai ser igual a "fdkvfjbvvsdvsdh", com o md5..
Então, no mesmo exemplo do BANCO DE DADOS, vc pega a variável que o usuario digitou a senha, coloca o md5 nela e faz a verificação já com o mD5..
#3
Posted 22/12/2004, 14:26
Respondendo às outras questões, o MD5 vai sempre retornar uma string de 32byte (ou caracteres já que, via de regra, cada caractere (ISO) tem 1byte).
A utilidade do MD5 está exatamente no fato de ele não poder ser desencriptado, ou seja, o único modo de se obter a string original é por tentativa e erro, e como a string encriptada tem sempre 32bytes (não importa se a original tinha 1 ou 200) o "cracker" não tem idéia nem do numero de caracteres da string original. Ou seja, a string original é virtualmente irrecuperável, mas utilizando o método descrito acima, tu podes verificar a validade da string.
A utilidade do MD5 está exatamente no fato de ele não poder ser desencriptado, ou seja, o único modo de se obter a string original é por tentativa e erro, e como a string encriptada tem sempre 32bytes (não importa se a original tinha 1 ou 200) o "cracker" não tem idéia nem do numero de caracteres da string original. Ou seja, a string original é virtualmente irrecuperável, mas utilizando o método descrito acima, tu podes verificar a validade da string.
Ainda com dúvida? Os melhores programadores PHP estão aqui
=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Blog PHPClube
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Bookmarks
=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Blog PHPClube
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Bookmarks
#4
Posted 22/12/2004, 14:57
Usando md5 pra criptografar a senha, daria pra fazer aquele "Recuperar Senha" .. o cara digita e-mail e recebe a senha no e-mail, neste caso 'teste" ou "sdpo12312odpoasd1222" ?
Abraços
Abraços
Danilo Depolli
danilo@camphost.com.br
CAMPHOST - 1º MES GRATIS EM QUALQUER PLANO! HOSPEDAGEM WEB
QUER PATROCINIO FREE? ENTRE EM CONTATO
ICQ: 7695319
MSN: danilodepolli@bol.com.br
danilo@camphost.com.br
CAMPHOST - 1º MES GRATIS EM QUALQUER PLANO! HOSPEDAGEM WEB
QUER PATROCINIO FREE? ENTRE EM CONTATO
ICQ: 7695319
MSN: danilodepolli@bol.com.br
#5
Posted 22/12/2004, 15:00
Bem recuperar com o proprio PHP não é possio a solucao é a senha que vehnha tbmn seja encriptada tipo
if ($senha_md5 == md5($_POST["senha"])) { ...
Porém eu acreditr que é possivel descriptda ela com engenharia reversda pois se tem um modo de faz\er tipoo "A = 2" tem uma volta ...
Não nao da para recuprar a senha o jeito e fazer o sistema crirar outra e mandar....
if ($senha_md5 == md5($_POST["senha"])) { ...
Porém eu acreditr que é possivel descriptda ela com engenharia reversda pois se tem um modo de faz\er tipoo "A = 2" tem uma volta ...
Não nao da para recuprar a senha o jeito e fazer o sistema crirar outra e mandar....
#6
Posted 22/12/2004, 15:29
Era isso q estava me confundindo....
Com md5 só é possível criar uma senha e verificar... mas se eu quiser ecuperar a senha é impossível, certo? Só criando outra mesmo...
Agora acho que o q o sk15 falou tem base, pois pense bem, se "teste" produzir "12xyzabc", e esse resultado SEMPRE for valido para "teste", deve haver alguma forma de um cracker pegar e fazer o inverso, com que 12xyzabc volte a ser teste... eu nem tenho ideia de como fazer isso, mas deve ser possível de alguma forma, pois o php por exemplo tem q saber q teste = 12xyzabc ...
Será que expliquei direito o que estou pensando??
Por fim, estava pensando em criptografar apenas a senha, que teria 20 caracteres... mas pelo jeito posso criptografar também nomes e emails, de até 100 caracteres ou mais, que sempre terei um amontoado de numeros e letras com 32 caracteres, certos?
Porém, só da para usar isso como validação, pois não tem como recuperar o dado criptografado....
Além de base64, tem outro método que possa ser recuperado depois ( apenas para confundir, pois vou precisar listar dados do BD mas quero que alguns fiquem embaralhados )...
Valeu!!
Com md5 só é possível criar uma senha e verificar... mas se eu quiser ecuperar a senha é impossível, certo? Só criando outra mesmo...
Agora acho que o q o sk15 falou tem base, pois pense bem, se "teste" produzir "12xyzabc", e esse resultado SEMPRE for valido para "teste", deve haver alguma forma de um cracker pegar e fazer o inverso, com que 12xyzabc volte a ser teste... eu nem tenho ideia de como fazer isso, mas deve ser possível de alguma forma, pois o php por exemplo tem q saber q teste = 12xyzabc ...
Será que expliquei direito o que estou pensando??
Por fim, estava pensando em criptografar apenas a senha, que teria 20 caracteres... mas pelo jeito posso criptografar também nomes e emails, de até 100 caracteres ou mais, que sempre terei um amontoado de numeros e letras com 32 caracteres, certos?
Porém, só da para usar isso como validação, pois não tem como recuperar o dado criptografado....
Além de base64, tem outro método que possa ser recuperado depois ( apenas para confundir, pois vou precisar listar dados do BD mas quero que alguns fiquem embaralhados )...
Valeu!!
Edição feita por: Alexx Ares, 22/12/2004, 15:30.
||| PENSE NISSO ||| O ser humano, dizem, deve dormir 8 horas por dia. Isso equivale a 1 terço do seu dia dormindo. Agora imagine a seguinte situação: você, com 75 anos, prestes a morrer, olha para trás e percebe que dormiu 1 terço da sua vida, ou seja, 25 anos. Cara... 25 ANOS DORMINDO !!! Se você tem menos de 25 anos, simplesmente você vai dormir mais do que viveu até hoje!!! Pense nisso... e durma menos.
#7
Posted 22/12/2004, 16:23
é...na verdade... o md5 é uma assinatura... como um CRC... pra validar a consitência daquele dado...então para encriptar não serve....
Que saber mais sobre criptografia... olha esse link:
http://www.aci.net/k...vacy_crypto.htm
Que saber mais sobre criptografia... olha esse link:
http://www.aci.net/k...vacy_crypto.htm
Quer aprender PHP? -> www.manjaphp.com.br
Tutoriais, código colaborativo (pastebin), curso de PHP, artigos e etc.
Tutoriais, código colaborativo (pastebin), curso de PHP, artigos e etc.
#8
Posted 23/12/2004, 00:09
Pois é, mas para um cracker decodificar a senha em md5, vai demorar, no minimo, algumas horas, pois ele utiliza um monte de cálculos, por exemplo, a letra "a" sozinha equivale a um md5, e as letras "ab" equivalem a outro totalmente diferente.
Se você estiver disposto a começar o estudo pra desvendar os md5 basta dar uma lidinha: http://www.faqs.org/rfcs/rfc1321
Se você estiver disposto a começar o estudo pra desvendar os md5 basta dar uma lidinha: http://www.faqs.org/rfcs/rfc1321
Edição feita por: Welington, 23/12/2004, 00:14.
0 user(s) are reading this topic
0 membro(s), 0 visitante(s) e 0 membros anônimo(s)