Como eu codifico e descodifico senhas?
Nenhuma descrição foi enviada.
comentários (0)
suspender
Lista de Respostas:
12/04/2003 12:13pm
(~21 anos atrás)
(~21 anos atrás)
Para codificar e descodificar senhas voce pode usar a funcao base64_encode e base64_decode.
veja um exemplo
<?php
$senha="teste";
$cod=base64_encode($senha);
echo $cod;
?>
isto ira retornar "teste" codificado, que ficara "dGVzdGU=". essa funcao e muito importante para quem grava senhas no banco de dados, evitando que alguma pessoa descubra as senhas pelo phpmyadmin.
para decodificar, basta usar base64_decode
<?php
$senha="teste";
$cod=base64_encode($senha);
$dec=base64_decode($cod);
echo $dec;
?>
isto ira retornar "teste", que é "dGVzdGU=" descodificado.
veja um exemplo
<?php
$senha="teste";
$cod=base64_encode($senha);
echo $cod;
?>
isto ira retornar "teste" codificado, que ficara "dGVzdGU=". essa funcao e muito importante para quem grava senhas no banco de dados, evitando que alguma pessoa descubra as senhas pelo phpmyadmin.
para decodificar, basta usar base64_decode
<?php
$senha="teste";
$cod=base64_encode($senha);
$dec=base64_decode($cod);
echo $dec;
?>
isto ira retornar "teste", que é "dGVzdGU=" descodificado.
16/04/2003 11:38am
(~21 anos atrás)
(~21 anos atrás)
Por questões de segurança é melhor vc usar a função do MySQL PASSWORD.
Ela é de mão única, ou seja não se descriptografa, mas sim criptiografa-se a nova e veja se as string criptografadas são iguais.
exemplos:
// Gravando-se no banco
$user = "Nome";
$pass = "senha a ser criptografada";
mysql_query("INSERT INTO users (name,senha) VALUES '$user',PASSWORD('$pass')");
// Verificando senha
$user = "Nome";
$pass = "senha digitada";
$res = mysql_query("SELECT count(*) FROM users WHERE name='$user' AND senha = PASSWORD('$pass')");
if ( mysql_num_rows($res)<1){
echo "Usuário nao registrado!!!";
}
Ela é de mão única, ou seja não se descriptografa, mas sim criptiografa-se a nova e veja se as string criptografadas são iguais.
exemplos:
// Gravando-se no banco
$user = "Nome";
$pass = "senha a ser criptografada";
mysql_query("INSERT INTO users (name,senha) VALUES '$user',PASSWORD('$pass')");
// Verificando senha
$user = "Nome";
$pass = "senha digitada";
$res = mysql_query("SELECT count(*) FROM users WHERE name='$user' AND senha = PASSWORD('$pass')");
if ( mysql_num_rows($res)<1){
echo "Usuário nao registrado!!!";
}
17/04/2003 4:50pm
(~21 anos atrás)
(~21 anos atrás)
Concordo, mas tambem se pode usar md5, axo que é mais seguro que base64. voce tambem pode criar sua propria funcao de criptografia!
21/04/2003 5:50pm
(~21 anos atrás)
(~21 anos atrás)
você pode usar md5() é bem mais seguro eu acho...
22/04/2003 6:45am
(~21 anos atrás)
(~21 anos atrás)
A função crypt() também pode ser usada com segurança, ela usa o sistema de criptografia nativo do sistema e salva a senha num formato que não se pode descriptografar, e para a autenticação você critografa a senha digitada pelo usuário e compara com a que você tem guardada no banco de dados, usando como salt a propria senha do banco de dados, pois se não a função usará um salt randômico ficando impossível a comparação.
Exemplo:
if (crypt($senha_digitada, $senha_real) == $senha_real)
{
echo "Senha correta!";
}
Exemplo:
if (crypt($senha_digitada, $senha_real) == $senha_real)
{
echo "Senha correta!";
}
27/04/2003 12:27pm
(~21 anos atrás)
(~21 anos atrás)
existem várias maneiras de proteger uma senha... você escolhe a que acha mais facil e eficiente... :)
---
rcp
---
rcp
29/04/2003 7:00am
(~21 anos atrás)
(~21 anos atrás)
Bom, md5 é a melhor citada..... porém esta naum tem volta... o q eh o contrario da base64 q tanto criptografa qto descriptografa...
Soh um comentario.
Soh um comentario.
02/05/2003 9:08pm
(~21 anos atrás)
(~21 anos atrás)
...onde eu consigo mais detalhes sobre essa função md5()??? (o.°)
13/07/2003 4:57am
(~21 anos atrás)
(~21 anos atrás)
Mais dados em ....
http://br.php.net/manual/pt_BR/function.md5.php
http://br.php.net/manual/pt_BR/function.md5.php
13/07/2003 4:58am
(~21 anos atrás)
(~21 anos atrás)
10/11/2003 1:09pm
(~21 anos atrás)
(~21 anos atrás)
Além de a função base64_encode() ser muito útil acredito que não seja a melhor opção para senhas, já que se alguém entrar no seu banco de dados e descobrir que você usa base64_encode nas senhas poderá utilizar o reverso da função para descobrir todas as senhas do seu cadastro.
No caso de senhas acredito que seja uma questão de gosto. Citarei algumas funções que você pode usar(mesmo a galera já tendo falado antes): no PHP existem crypt(), md5() e sha1(), são as que eu lembro no momento, desculpe se esqueci de alguma. No próprio MySQL você tem a função PASSWORD que pode ser útil também.
No caso de senhas acredito que seja uma questão de gosto. Citarei algumas funções que você pode usar(mesmo a galera já tendo falado antes): no PHP existem crypt(), md5() e sha1(), são as que eu lembro no momento, desculpe se esqueci de alguma. No próprio MySQL você tem a função PASSWORD que pode ser útil também.
26/03/2004 2:59pm
(~20 anos atrás)
(~20 anos atrás)
eu codifico normal e tal, tanto usando o base quanto usando o crypt, mas pra mim descodifica, que função é? decrypt?
Abraços,
Abraços,
16/08/2004 8:21am
(~20 anos atrás)
(~20 anos atrás)
Cara... usando a função crypt vc não conseguirá fazer o processo reverso... ou seja... uma vez criptografado, não há como descobrir a senha correta.
Bom... mas então como fazer para verificar se a senha é correta?
Simplesmente faça o seguinte:
- Quando o usuário digitar o usuário e senha, envie os dados para uma página onde você usará a função crypt na senha passada por ele. Como resultado, você terá a senha digitada criptografa.
- Compare essa senha criptografada com a do banco de dados.
- Se as senhas forem iguais, então a senha digitada está correta.
[]s
Gustavo.
Bom... mas então como fazer para verificar se a senha é correta?
Simplesmente faça o seguinte:
- Quando o usuário digitar o usuário e senha, envie os dados para uma página onde você usará a função crypt na senha passada por ele. Como resultado, você terá a senha digitada criptografa.
- Compare essa senha criptografada com a do banco de dados.
- Se as senhas forem iguais, então a senha digitada está correta.
[]s
Gustavo.