Ir para conteúdo
Fórum Script Brasil
  • 0

Crypt


Andre H.S. Mendes

Pergunta

Olá.

Estou usando crypt nos campos de senha para gravar no DB a senha criptografada.

porém na hora de checar a senha ela da sempre senha errada!!!!!

se eu usar o CRYPT sem escolher o tipo de encriptação é um problema na hora de checar a senha?

To fazendo assim:

----- PHP DO CADASTRO -----

//ENCRIPTANDO SENHA
$senha = crypt($senha);
//ADICIONANDO AO BANCO DE DADOS
$sql = "INSERT INTO usuarios VALUES ";
$sql .= "('$nome','$senha','$email')";
$resultado = mysql_query($sql);
header ("location: sucesso.php");
}
------ PHP QUE EXCECUTA O LOGIN ------
<?php
include ('includes/config.php');
//PEGANDO OS VALORES DIGITADOS
$username = $_POST["username"];
$pass = $_POST["senha"];
$pass = crypt($pass);
//ACESSO AO BANCO DE DADOS
include (PATH . '\includes\conectabd.php');
$resultado = mysql_query("SELECT * FROM usuarios where username='$username'");
$linhas = mysql_num_rows($resultado);

//TESTANDO SE A CONSULTA RETORNOU ALGO
if($linhas==0)
    {
        echo "<html><head><meta http-equiv=\"refresh\" content=\"3;URL=index.php\" />
</head><body>";
        echo "<p align=\"center\"><b>Usuário não encontrado!</b></p>";
        echo "<p align=\"center\">Redirecionando em 3 segundos</p>";
        echo "<p align=\"center\"><a href=\"index.php\">Voltar</a></p>";
        echo "</body></html>";
    }
else
    {
        //CONFERE SENHA
        if($pass != mysql_result($resultado, 0, "senha"))
            {
                echo "<html><head><meta http-equiv=\"refresh\" content=\"3;URL=index.php\" />
</head><body>";
                echo "<p align=\"center\"><b>A senha está incorréta!</b></p>";
                echo "<p align=\"center\">Redirecionando em 3 segundos</p>";
                echo "<p align=\"center\"><a href=\"index.php\">Voltar</a></p>";
                echo "</body></html>";
            }
        else
            {
                //USUARIO E SENHA CORRETOS. CRIANDO COOKIES
                setcookie("nome_usuario", $username);
                setcookie("senha_usuario", $pass);
                //DIRECIONA PARA A PÁGINA INICIAL DE USUARIOS CADASTRADOS
                header ("location: painelusuario.php");
            }
    }
?>

Nesse executa login é onde aparece o primeiro problema, ou dúvida!!! eu posso usar o crypt() normalmente para checar no BD? tem q colocar algum parâmetro especial... onde coloca essa budega?

vlw

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Tem algo errado nesse script ou é somente dúvida mesmo? =o

Link para o comentário
Compartilhar em outros sites

  • 0

Sem escolher o tipo de encriptação? =S

Criptografia é um algoritmo de hash, ou seja, tem uma entrada que resulta numa saída. Eu li o manual e por padrão ele utiliza um algoritmo Unix DES-based. Mas pelas opções dá pra utlizar outras; consulta o manual que você vai entender melhor. Agora se tu queres outros tipos de encriptação, podes usar o sha1 ou md5.

http://br2.php.net/manual/en/function.crypt.php

E teu arquivo que executa o login já compara no banco com o crypt =S

Se é que eu entendi bem sua dúvida.

Abraços!

Link para o comentário
Compartilhar em outros sites

  • 0

então eu posso usar apenas o crypt() que não tem problema.

o problema que está dando é o seguinte:

na hora da verificação da senha no BD, retorno senha invlalida.

if($pass != mysql_result($resultado, 0, "senha"))
//CONFERE SENHA
        if($pass != mysql_result($resultado, 0, "senha"))
            {
                echo "<html><head><meta http-equiv=\"refresh\" content=\"3;URL=index.php\" />
</head><body>";
                echo "<p align=\"center\"><b>A senha est&aacute; incorr&eacute;ta!</b></p>";
                echo "<p align=\"center\">Redirecionando em 3 segundos</p>";
                echo "<p align=\"center\"><a href=\"index.php\">Voltar</a></p>";
                echo "</body></html>";
            }
        else
            {
                //USUARIO E SENHA CORRETOS. CRIANDO COOKIES
                setcookie("nome_usuario", $username);
                setcookie("senha_usuario", $pass);
                //DIRECIONA PARA A PÁGINA INICIAL DE USUARIOS CADASTRADOS
                header ("location: painelusuario.php");
            }
    }

O IF está retornando VERDADEIRO. o que significa que a senha está dando diferente na hora da comparação.

Link para o comentário
Compartilhar em outros sites

  • 0

Odeio quando passo os olhos por cima e não vejo os detalhes ¬¬

$resultado = mysql_query("SELECT * FROM usuarios where username='$username'");

Tua SQL não está buscando a senha ^_^

Link para o comentário
Compartilhar em outros sites

  • 0

Desculpe a demora!

Sim eu sei! Mas é assim, quando tu fazes uma select ao banco ele te retorna valores. Quando tu mandaste tua SQL, ele trouxe somente o USERNAME do banco. Após tu pedes a senha, que não tem em nenhuma SQL!

Reveja teu código. Se estiveres em dúvida, ecoe sua busca do banco após colocá-la em um array com a função print_r()

Abraços!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...