Qual a sintaxe correta para o uso dos comandos crypt() ou md5()? Qual a vantagem do uso de um sobre o outro?
Nenhuma descrição foi enviada.
comentários (0)
suspender
Lista de Respostas:
25/01/2004 10:53am
(~21 anos atrás)
(~21 anos atrás)
A sintaxe você pode encontrar no nosso manual online
que está em www.php.net/manual/pt_BR/ das duas funções
e também temos o download em português em http://manualphp.sf.net
Sobre as funções a Crypt oferece uma série de constantes que são os tipos que ela usa para fazer a encriptação.. em teoria o md5 é bem mais simples e você poderia usar algo como md5(string);
onde string seria a senha do usuário para encriptar
Existe um pacote da PEAR (http://pear.php.net) que também manipula geração de senhas é interessante dar uma olhada
Espero ter ajudado
que está em www.php.net/manual/pt_BR/ das duas funções
e também temos o download em português em http://manualphp.sf.net
Sobre as funções a Crypt oferece uma série de constantes que são os tipos que ela usa para fazer a encriptação.. em teoria o md5 é bem mais simples e você poderia usar algo como md5(string);
onde string seria a senha do usuário para encriptar
Existe um pacote da PEAR (http://pear.php.net) que também manipula geração de senhas é interessante dar uma olhada
Espero ter ajudado
25/01/2004 11:27am
(~21 anos atrás)
(~21 anos atrás)
crypt("string1","string2");
você deve passar para a função duas strings, sendo que a primeira será criptografada e a segunda (opcional) indicará como a criptografia será feita. Você pode usar DES, MD5, Blowfish, etc. Se não passar a segunda string o php gera dois caracteres aleatórios para para servir de base para a encriptação. Existem mais informações sobre a segunda string, acesse: http://br2.php.net/manual/pt_BR/function.crypt.php
você deve passar para a função duas strings, sendo que a primeira será criptografada e a segunda (opcional) indicará como a criptografia será feita. Você pode usar DES, MD5, Blowfish, etc. Se não passar a segunda string o php gera dois caracteres aleatórios para para servir de base para a encriptação. Existem mais informações sobre a segunda string, acesse: http://br2.php.net/manual/pt_BR/function.crypt.php
25/01/2004 3:13pm
(~21 anos atrás)
(~21 anos atrás)
O MD5 é um algoritmo de hash. Ou seja ele gera sempre uma cadeia de 32 caracteres hexadecimais. É excelente para validações de usuários simples. Um hash (acho que o nome é esse) não tem volta, para saber se a validação está correta somente por comparação.
Se precisar encriptar um texto e ter retorno não use MD5.
Se precisar encriptar um texto e ter retorno não use MD5.
27/01/2004 9:21am
(~21 anos atrás)
(~21 anos atrás)
crypt("string", "md5")
é a mesma coisa que
md5("string")
se vc usar o crypt() sem a segunda string, pra comparar uma senha por exemplo, vc usaria:
$senha_crypt; // Senha criptografada anteriormente
$senha_form; // Senha enviada pelo formulario (sem cript)
if (crypt($senha_form, $senha_crypt) == $senha_crypt) {
print "Senhas identicas";
} else {
print "Senhas diferentes";
}
é a mesma coisa que
md5("string")
se vc usar o crypt() sem a segunda string, pra comparar uma senha por exemplo, vc usaria:
$senha_crypt; // Senha criptografada anteriormente
$senha_form; // Senha enviada pelo formulario (sem cript)
if (crypt($senha_form, $senha_crypt) == $senha_crypt) {
print "Senhas identicas";
} else {
print "Senhas diferentes";
}
27/01/2004 10:31am
(~21 anos atrás)
(~21 anos atrás)
Ambos são algorítimos só de ida... vc não pode recuperar uma senha por exemplo... pode gerar outra encriptada e comparar... A diferença é que MD5 é um hash, como o nosso amigo acima disse, gera um hexadecimal de 32 caracteres.
//recuperando do form
$senha = $_POST['senha'];
//encriptando
$senha = md5($senha);
Você joga a senha no DB e quando precisar logar faça o mesmo processo pra comparar os hashs.
//recuperando do form
$senha = $_POST['senha'];
//encriptando
$senha = md5($senha);
Você joga a senha no DB e quando precisar logar faça o mesmo processo pra comparar os hashs.
04/02/2004 2:11pm
(~21 anos atrás)
(~21 anos atrás)
Só para acrescentar como as senhas encriptadas são guardadas no banco uma sugestão é utilizar a função password do mysql então um insert ficaria assim:
'insert into usuarios(login,senha) values('.$login.',password('.$senha.'))'
'insert into usuarios(login,senha) values('.$login.',password('.$senha.'))'
09/02/2004 12:18am
(~21 anos atrás)
(~21 anos atrás)
Para criptografia o ideal seria mcrypt, mas se tratando de hash, ainda temos o sha1() e o crc32()... O uso de password() no mysql tbm é recomendado, a partir da versão 4.1, a função PASSWORD() foi modificada para produzir um valor hash de 41 bytes.
Como exemplo execute essa query: SELECT PASSWORD('mypass'). Retorna o seguinte: *43c8aa34cdc98eddd3de1fe9a9c2c2a9f92bb2098d75
Como exemplo execute essa query: SELECT PASSWORD('mypass'). Retorna o seguinte: *43c8aa34cdc98eddd3de1fe9a9c2c2a9f92bb2098d75