Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
ola amigos do forum tudo beleza?
seguinte estava montano um sisteminha de esqueci a senha para o site aew me lembrei q as senhas estao em hash md5 =P
entao na da so pra pegar do bd e enviar por email =/.
alguem poderia me indicar algum tutorial onde e gerado uma senha nova trocada no bd e enviada por email coma a nova senha algo do tipo.
ou entao como faria para o pphp "gerar" uma senha aleatoria so pra gravar no bd e enviar para o usuario seria tipo uma variavel q gera um valor aleatorio?.
ou entao algo mais completo tipo confirmar se usuario pediu a troca e depois enviar a senha nova.
espero q entendam a duvida
Vlw ajuda pessoal
Crie uma página para a recuperação de senha
Coloque um campo para o cliente digitar o e-mail, gera um codigo de confirmação, salva o código de confirmação no MySql e manda pro e-mail do cliente.
Cria outra página, que troca a senha, nessa página pede o código de confirmação, faz a checagem de o código de confirmação existe com uma consulta no MySql, caso existir, já pega o e-mail referente, coloque um campo para digitar a nova senha, pegue o campo digitado, converta-o para md5, faça um update salvando a nova senha.
Não sei explicar muito bem, mas acho que deu para entender.
Dualquer dúvida estamos aí.
opa meus amigos obrigado pela ajuda.
o base64_encode tem a mesma eficiencia q o md5?
amigo Leonardo poderia geral um codigo aleatoriao com md5 certo mas depois de salvar no bd como passaria o valor dele para o email com um link direto+ o valor aleatorio q seria pego por get depois?
axo q como nao e um sistema muito complexo vou usar o base64 ao inves do md5.
vlw ajuda
>
Crie uma página para a recuperação de senhaColoque um campo para o cliente digitar o e-mail, gera um codigo de confirmação, salva o código de confirmação no MySql e manda pro e-mail do cliente.Cria outra página, que troca a senha, nessa página pede o código de confirmação, faz a checagem de o código de confirmação existe com uma consulta no MySql, caso existir, já pega o e-mail referente, coloque um campo para digitar a nova senha, pegue o campo digitado, converta-o para md5, faça um update salvando a nova senha.Não sei explicar muito bem, mas acho que deu para entender.Dualquer dúvida estamos aí.
Era exatamente o que eu ia sugerir. Porque de uma forma ou de outra o usuário vai ter que alterar a senha, então é melhor permitir que ele altere sem ter que usar nenhuma senha aleatória.
base64 pode desincriptar, md5 também, porém o modo que se desencripta o md5 é da seguinte forma, tem uma lista cheio de hash, se a hash md5 não tiver na lista é só com força bruta. Se o usuário tiver uma senha forte, dificilmente será quebrado.
É mais recomendável usar md5, agora para gerar o codigo de confirmação é só usar um rand()
a etendi amigos vlw entao vou tentar fazer no modo do md5 mesmo gerando um valor aleatorio salvano no bd , aew pego o link para a pagina de verificaçao blabala.php?cod= "valor do codigo aleatorio" algo assim ne. aew se o codigo exister no bd pego o email daquele codigo e faço o update correto.
so mas uma duvida euja passo um aprametro pela url q e os das paginas exemplo index.php?pg= blabla entao pra passar outro seria agora & estou certo? depois do "?" e do "&" tem como passar outro paramentro se precisar?
para geral um valor aleatorio em md5 seria algo tipo $aleatorio = md5(randon());?
vlw ajuda pessoal
Um sistema simples de "esqueci a senha":
Você pode, por exemplo, pedir o e-mail da pessoa, depois verificar no banco e se existir, da um UPDATE com uma senha nova no BD e envia um e-mail pra pessoa com essa senha nova.
Depois se o usuário quiser, muda a senha para uma com sua preferencia.
>
base64 pode desincriptar, md5 também, porém o modo que se desencripta o md5 é da seguinte forma, tem uma lista cheio de hash, se a hash md5 não tiver na lista é só com força bruta. Se o usuário tiver uma senha forte, dificilmente será quebrado.
É mais recomendável usar md5, agora para gerar o codigo de confirmação é só usar um rand()
Leonardo você esta errado nisso md5 não pode desencriptar e ate mesmo se consegui-se não iria voltar a mesma senha viria diferente da encriptada
Há alguns sites com um sistema de decriptar hashs md5, mas difícil é saber o sistema deles: http://www.md5decrypter.com/
Leiam meu comentário, md5 é possível sim!
O que acontece é o seguinte, eles tem uma database de hashes geradas.
É uma database de hash + a palavra referente a hash, caso você consiga decryptar provalvemente a hash que você procurou estava na database, caso falhar, a hash não foi colocada na database ainda.
Caso não tiver a hash nessa database, é só com força bruta.
Gabriel Jacinto
Isso dai e falso se você encriptar la qual quer coisa no proprio site ele encripta normal e desencripta mais se você for e colocar uma outra coisa ja encriptada la com certeza ira dar algum erro ou retornar caracteres estranhos
No maximo ele estara desencriptando algumas coisas não todas e ainda pode haver alguns erros por isso que prefiro mais o base64_encode
Faça um teste nesse site que você passou encripte a senha que você utiliza (fazendo um teste se foce para desencriptar uma senha no banco) usando seu proprio localhost e depois tente desencriptar naquele site bem provável que não funcione por que ele faz pelo que acho esse sistema deve fazer comparações no banco para ver se algum ja encriptou algo com aqueles mesmos caracteres caso exista ele mostra a mesma coisa que a pessoa tinha encriptado e não desencriptar o documento a caso ninguém tive-se nem encriptado nada nem desencriptado ele mostra a mensagem A decryption for this hash wasn't found in our database
>
Leiam meu comentário, md5 é possível sim!
O que acontece é o seguinte, eles tem uma database de hashes geradas.
É uma database de hash + a palavra referente a hash, caso você consiga decryptar provalvemente a hash que você procurou estava na database, caso falhar, a hash não foi colocada na database ainda.
Caso não tiver a hash nessa database, é só com força bruta.
Foi o que eu falei mais para mim isso não seria muito uma desencryptação e somente comparações feitas no banco de dados
Isso dai e falso se você encriptar la qual quer coisa no proprio site ele encripta normal e desencripta mais se você for e colocar uma outra coisa ja encriptada la com certeza ira dar algum erro ou retornar caracteres estranhos No maximo ele estara desencriptando algumas coisas não todas e ainda pode haver alguns erros por isso que prefiro mais o base64_encode
Faça um teste nesse site que você passou encripte a senha que você utiliza (fazendo um teste se foce para desencriptar uma senha no banco) usando seu proprio localhost e depois tente desencriptar naquele site bem provável que não funcione por que ele faz pelo que acho esse sistema deve fazer comparações no banco para ver se algum ja encriptou algo com aqueles mesmos caracteres caso exista ele mostra a mesma coisa que a pessoa tinha encriptado e não desencriptar o documento a caso ninguém tive-se nem encriptado nada nem desencriptado ele mostra a mensagem A decryption for this hash wasn't found in our database
É verdade, desculpa, não tinha testado ainda.
É verdade, desculpa, não tinha testado ainda.
He vivendo e aprendendo
Caso queira oferecer privacidade aos seus clientes/usuários, não gere as senhas automaticamente..
Faça um "reset" da senha atual.
No link "esqueci a senha", leve-o para um formulário onde ele preencherá com o endereço de e-mail
Se o e-mail for válido e cadastrado no sistema, enviará um link por e-mail.
Nesse link terá um código unico de ativação para resetar a senha..
O link do email enviará por GET, o código de identificação, o qual exibirá um formulário com o campo
senha [ ]
confirmar senha [ ]
O próprio usuário criará uma senha nova..
>
Gabriel Jacinto
Isso dai e falso se você encriptar la qual quer coisa no proprio site ele encripta normal e desencripta mais se você for e colocar uma outra coisa ja encriptada la com certeza ira dar algum erro ou retornar caracteres estranhos
No maximo ele estara desencriptando algumas coisas não todas e ainda pode haver alguns erros por isso que prefiro mais o base64_encode
Faça um teste nesse site que você passou encripte a senha que você utiliza (fazendo um teste se foce para desencriptar uma senha no banco) usando seu proprio localhost e depois tente desencriptar naquele site bem provável que não funcione por que ele faz pelo que acho esse sistema deve fazer comparações no banco para ver se algum ja encriptou algo com aqueles mesmos caracteres caso exista ele mostra a mesma coisa que a pessoa tinha encriptado e não desencriptar o documento a caso ninguém tive-se nem encriptado nada nem desencriptado ele mostra a mensagem A decryption for this hash wasn't found in our database
Foi o que eu falei mais para mim isso não seria muito uma desencryptação e somente comparações feitas no banco de dados
Ronaldo você esta 100% errado MD5 é possivel sim desencryptar facilmente.
muito estranho semple li q md5 era impossivel quebrar ou entao era extremamente dificil quebrar entao usar tanto md5,ocmo sha1 e base64 e praticamente a mesma coisa vantagem do md5 se e q tem seria q ele e mais difici nao?
cada sistema q gera o md5 nao tem uma diferença como oi sitado pelo amigo Ronaldo?
Na verdade existe um dicionário de md5 muito usado por hackers, o Rainbow Tables.
>
Ronaldo você esta 100% errado MD5 é possivel sim desencryptar facilmente.
De que forma ?
md5 é irreversível..
"MD5 é possivel sim desencryptar"
isso está errado.. o certo é que, como comentaram, existem as "rainbow tables"
"rainbow tables" são dicionários contendo o hash relacionado com a string original..
>
Na verdade existe um dicionário de md5 muito usado por hackers, o Rainbow Tables.
>
De que forma ?
extamente oque o gabriel falou ali
da olhada
http://en.wikipedia.org/wiki/Rainbow_table#Rainbow_tables
mais corrigindo oque eu disse ali
a palavra "facil" descarta ela mais é possivel quebrar sim.
se nao me engano tinha um site de uma chinesa nerd que da pra quebra senha de ate 5 caracteres
se for mais eles cobram
>
md5 é irreversível..
"MD5 é possivel sim desencryptar"
isso está errado.. o certo é que, como comentaram, existem as "rainbow tables"
"rainbow tables" são dicionários contendo o hash relacionado com a string original..
Isso que eu estava tentando falar
que md5 e irreversível você pode fazer comparações mais podem haver duplicações ou aparecer palavras que não tem nada ha ver com o conteúdo encriptado
>
extamente oque o gabriel falou ali
da olhada
http://en.wikipedia.org/wiki/Rainbow_table#Rainbow_tables
mais corrigindo oque eu disse ali
a palavra "facil" descarta ela mais é possivel quebrar sim.
se nao me engano tinha um site de uma chinesa nerd que da pra quebra senha de ate 5 caracteres
se for mais eles cobram
Mais mesmo assim nunca mais sera a mesma coisa você pode quebrar ate senhas com nomes mais se conseguir em qual quer site que fala que desencripta md5 e tentar desencriptar sua propria senha encriptada(utilizando letras e numeros na senha) as chances são minimas ate se for desse site desse chinesa
Me corrigindo, eu me expressei de má forma.
Como o colega disse, para "decryptar" MD5 só com a rainbow tables, não sabia o nome da tal database.
MD5 é irreversível.
usano o base64encode nao consegui reverter o valor
pegano a senha em base64ecode no bd
... aqui ta o seletct..
while($linha = mysql_fetch_array($sql_pegasenha)){
$senhaRes= $linha['senha'];
$senhaenvia = base64_encode($senhaRes);
echo $senhaenvia;
fazeno assim ele nao desclipat aparece algo totalmente diferente como se ele estivese encliptano de novo lol =/
>
usano o base64encode nao consegui reverter o valor
pegano a senha em base64ecode no bd
... aqui ta o seletct..
while($linha = mysql_fetch_array($sql_pegasenha)){
$senhaRes= $linha['senha'];
$senhaenvia = base64_encode($senhaRes);
echo $senhaenvia;
fazeno assim ele nao desclipat aparece algo totalmente diferente como se ele estivese encliptano de novo lol =/
Da sim, mas com a função, que eu descobri no chute, base64_decode():
<?php
$texto = "oi, como vai?";
echo "<b>Texto:</b> ".$texto."<br>";
$texto2 = base64_encode($texto);
echo "<b>Codificado:</b> ".$texto2;
$texto3 = base64_decode($texto2);
echo "<br><b>Decodificado:</b> ".$texto3;
?>Como o Gabriel Jacinto ja disse
Para codificar use o
base64_encode
Para decodificar use o
base64_decode
Olha também tem esse site esta explicando algumas coisas
http://blog.thiagobelem.net/criptografia-no-php-usando-md5-sha1-e-base64/
Seu codigo ficaria assim
... aqui ta o seletct..
while($linha = mysql_fetch_array($sql_pegasenha)){
$senhaRes = $linha['senha'];
$senhaenvia = base64_decode($senhaRes);
echo $senhaenvia;
Cara o md5 não são duas maos ele depois de usar hash md5 não tem mais volta
por isso eu a concelho a utilizar o base64_encode que ira codificar sua senha mais o bom e que tem volta
E ficaria melhor e mais facil o procedimento na hora de trocar de senha
Caso queira gerar a senha nova isso ate posso te ajudar mais mandar por e-mail num e muito meu forte