Jump to content
ricardonews

como logar no banco com senha criptografada

Recommended Posts

olá pessoal, alguém ja teve dificuldade de logar no banco com um formulario de login feito pelo ajax quando a senha é criptografada?

a minha está o sendo pelo md5 e quando deixo sem criptografia eu logo no banco.  Eu gostaria de logar com criptografia.

vou deixar  a index e o arquivo que busca no banco de dados

<!doctype html>
<html>
<?php
    require_once"config.php";
?>
    <head>
        <title>Formulario de login</title>
        <style type="text/css">
        html{
            height:100%;
            background: linear-gradient(rgba(38, 128, 101, 0.9), rgba(52, 177, 140, 0.9));
        }
        #div_login{
            width:500px;
            margin:40px auto;
            position:relative;
            background-color: #ffffff;
            padding: 20px;
            border-radius: 5px;
        }
        #message{
           width:100%;
           text-align:center;
           color:red;
           margin-bottom: 20px;
        }
        #div_login h1 {
            text-align: center;
        }
        #div_login input, #div_login textarea,#div_login a{
            padding:10px;
            border:1px solid rgba(38, 128, 101, 0.9);
            border-radius:4px;
            -moz-border-radius:4px;
            -webkit-border-radius:4px;
            outline:none;
            box-sizing: border-box;
            width:100%;
            font:14px "Trebuchet MS", tahoma, arial;
            color:#090;
            margin-bottom:10px;
        }
        #div_login #but_submit,#div_login a {
            background-color: #27ae60;
            font-weight: bold;
            text-transform: uppercase;
            color: #ffffff;
            width: auto;
            margin: 0;
            padding: 10px 20px;
        }
        </style>
        <!--<link href="style.css" rel="stylesheet" type="text/css">-->

        <script src="jquery-3.2.1.min.js" type="text/javascript"></script>

        <script type="text/javascript">
            $(document).ready(function(){

                $("#but_submit").click(function(){
                    var username = $("#meu_nome").val().trim();
                    var password = $("#minha_senha").val().trim();

                    if( username != "" && password != "" ){
                        $.ajax({
                            url:'pesquisar.php',
                            type:'post',
                            data:{username:username,password:password},
                            success:function(response){
                                var msg = "";
                                if(response == 1){
                                    window.location = "home.php";
                                }else{
                                    msg = "email e senhas invalidos!";
                                }
                                $("#message").html(msg);
                            }
                        });
                    }
                });

            });
        </script>
    </head>
    <body>
        <div class="container">

            <div id="div_login">
                <h1>Login</h1>
                <div id="message"></div>
                <div>
                    <input type="text" class="textbox" id="meu_nome" name="meu_nome" placeholder="email" />
                </div>
                <div>
                    <input type="password" class="textbox" id="minha_senha" name="minha_senha" placeholder="senhas"/>
                </div>
                <div>                    
                    <input type="button" value="logar" name="but_submit" id="but_submit" />
                    <a href="inicio.php"><strong>Cadastrar</strong></a>
                </div>
            </div>

        </div>
    </body>
</html>

agora vem oque busca os dados no banco e é justamente essa parte que eu não entendo oque acontece.


<?php
    require_once "config.php";
 // AQUI É O PESQUISAR PHP
$uname = mysqli_real_escape_string($con,$_POST['username']);
$password = mysqli_real_escape_string($con,$_POST['password']);


if ($uname != "" && $password != ""){

    $sql_query = "SELECT count(*) as cntUser FROM usuarios WHERE email='".$uname."' and password='".$password."'";
    $result = mysqli_query($con,$sql_query);
    $row = mysqli_fetch_array($result);

    $count = $row['cntUser'];

    if($count > 0){
        $_SESSION['uname'] = $uname;
        echo 1;
    }else{
        echo 0;
    }

}

desde já fico agradeço 

Share this post


Link to post
Share on other sites

@ricardonews 

 

Quando você faz o cadastro do usuário você tem que salvo a senha criptografada do usuário, assim quando o usuário digitar a senha e você fazer a citografia da senha ela deve bater com a salva no banco de dados.

 

Você nunca deve salva a senha do usuário pura no banco de dados!

Share this post


Link to post
Share on other sites

Grabielms, desculpa por não ter sido específico na pergunta. Mas na verdade essa parte eu entendo eu até reformulei a pergunta,  estou pensando em usar outra criptografia de senha, mas oque estou com dificuldade é de logar no banco com criptografia na senha, eu fiz um modelo de login mas deu erro exatamente por causa que não reconhecia a senha criptografada,  eu fiz uma busca na net mas não achei nada parecido que me ajude, se puder me ajudar  nessa, eu fico grato. desculpa pelos erros.

Share this post


Link to post
Share on other sites

eu não entendi direito, mas a onde que eu uso isso? é  sem eu ultilizar o ajax funciona normal o login com senha criptografada, eu ja fiz vários projetos com ele, mas agora com ajax é que estou com essa dificuldade.

Share this post


Link to post
Share on other sites

Criar o hash durante o cadastro

$senha = password_hash("sua_senha", PASSWORD_DEFAULT);

Armazene a variável $senha no banco

 

Conferir se a senha bate durante o login:

if (password_verify("senha_digitada", "senha_do_banco_armazena_vinda_da_query")) {

   // Senha confirmada

}

 

https://www.php.net/manual/pt_BR/function.password-hash.php

Share this post


Link to post
Share on other sites

eu tentei usar essa criptografia no cadastro, mas não funcionou. mas eu acredito que tudo é jquery ou ajax, porque eu fiz vários login, cadastro normal e funciona. agora a unica que funcionou gravando senha no banco foi  a que coloco md5. eu uso uma vareavel que recebe o array json com todos os dados e distribui nos campos.  eu aqui tem umas imagems. mas o login era para reconhecer a criptografia md5 e logar no banco como no procedimento normal de php sem envolver ajax e jquery.

 

IMASTER1.png

IMASTER.png

Share this post


Link to post
Share on other sites

Osmar, resolvido! oque estava faltando era especificar no login a criptografia do banco. neste caso era a md5 o cadastro foi feito com ela.porem eu vou mudalo para outra, mas segue a regra se o cadastro é em uma criptografia, o login precisa ser a mesma criptografia. como eu não havia especificado nada. ele só pegava a senha sem criptografia e a que estava criptografada ele não reconhecia. depois de fazer um login em php que eu lembrei que nesse faltava a criptografia do banco e foi quando resolvi o problema e eu pensando que era o ajax rsss. mas obrigado a todos pelas dicas.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Chester1
      oi, eu to tentando mexer com servidores agora no PHP e esta dando um erro muito estranho que quando eu procuro em um programa que acha erros de sintaxe ele me diz que o erro esta no </HTML>    se alguem puder me dizer qual foi o erro que eu cometi eu agradeceria
       

       
      <HTML> <HEAD><TITLE>incluindo no banco de dados</TITLE></HEAD> <body> <BODY bgcolor="#d0d0d0"> <center> <h3>Lanchonete coma bem (voltada para o internauta)</h3> <h1>24horas</h1> <?php $login_digitado=$_POST['login']; $senha=$_POST['senha']; $nome=$_POST['nome']; $email=$_POST['email']; $telefone=$_POST['telefone']; $celular=$_POST['celular']; $endereco=$_POST['endereco']; $complemento=$_POST['complemento']; if ($login_digitado == "" || $senha == "" || $nome =="" || $email == "" || $telefone == "" || $endereco == "" || $complemento == "") { echo "existem(m) campos(s) de preenchimento obrigatorio em branco,<BR> infelizmente tera que voltar para preenche-lo(s)."; echo "<BR><a href=\"cadastro.php\">clique aqui para tentar novamente</a>"; } else { { $link=mysql_connect("localhost", "root", "") or die ("<h1>nao foi possivel conectar !!!</h1> ".mysql_error());  
      obs :estou trabalhando com formularios e servidores
         
         
         
         
      ?>
      </BODY>
      </HTML>
    • By rainbowily
      Sou nova em sql e estou com duvida em como fazer uma consulta:
      Eu tenho uma tabela de produto(id, descricao), cor(id, nome) e produto_cor(id, id_produto, id_cor). Preciso descobrir se tem algum produto que tenhas as cores (1,2,3) respectivamente para não deixar cadastrar outro produto. Alguém poderia me ajudar? Obrigada



    • By DavidPin94
      Boa tarde, estou tentando criar uma validação para saber se o usuário já está cadastrado no meu banco de dados para meu sistema ficar mais organizado, porém quando realizo o teste cadastrando um usuário já cadastrado, o cadastro ocorre sendo que não era para ocorrer
      <?php require_once("conexao.php");?> <?php if (isset($_POST['usuario'])) { $nome = utf8_decode($_POST['usuario']); $senha = utf8_decode($_POST['senha']); $inserir = "INSERT INTO cadastro "; $inserir .= "(usuario, senha) "; $inserir .= "VALUES "; $inserir .= "('$nome', '$senha')"; $query = "SELECT usuario FROM cadastro WHERE usuario = '$usuario' LIMIT 1"; $consulta = mysqli_query($conecta, $query); $query = "SELECT usuario FROM clientes WHERE usuario = '$usuario' LIMIT 1"; $consulta = mysqli_query($conecta, $query); if (mysqli_num_rows($consulta) < 1) { $operacao_inserir = mysqli_query($conecta, $inserir); if (! $operacao_inserir) { die("Erro no banco"); }else header("location: login.php"); }else{ die("Usuário existente!"); } } ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Cadastrar novo usuário</title> <link rel="stylesheet" type="text/css" href="estilo.css"> </head> <body> <nav> <ul> <li><a href="inicial.php">PÁGINA INICIAL</a></li> <li><a href="quem_somos.php">QUEM SOMOS</a></li> </ul> </nav> <div id="cadastro"> <form method="post" action="cadastro.php"> <label>Digite seu nome de usuário</label> <input type="text" name="usuario" placeholder="Ex: Usuario123" required size="50" minlength="5" maxlength="20" autofocus><br> <label>Digite sua senha</label> <input type="password" name="senha" placeholder="Deve conter mais de 5 caracteres" required size="50" minlength="5" maxlength="20" autofocus><br> <input type="submit" value="Cadastrar" id="enviar" name="enviar"> </form> </div> </body> </html> ,  alguém poderia me ajudar?  Meu código:
    • By thunanchiu@hotmail,com
      Bom dia, gostaria dessa ajuda.
      Tenho uma tabela de "INSCRIÇÃO" onde a mesma possui 2 chaves estrangeiras (CAND_SQ e CANDPL_SQ). Ambas as chaves estrangeiras possuem um campo CPF.
      Gostaria de saber como eu trago os cpfs que são iguais dentro da inscrição.
      Ou seja, atualmente tenho uma INSCRIÇÃO onde pode ser feita de duas maneiras diferentes. Inscrição Regular e Inscrição Atraso. Quando eu for fazer a Inscrição Atraso, caso eu já tenha feito a Inscrição Regular não poderei fazer a Inscrição Atraso.
    • By Sapinn
      Salve salve! Nuca intendi como isso realmente funciona por isso gostaria da ajuda de vcs. Estou desenvolvendo um sistema de historias e acho que seria interessante no envio dessas historia além dos texto imagem ilustrativas, mais ou menos como blogs de noticias fazem, mas como posso enviar texto e imagem e depois retorna-los juntos? Eu sei com enviar imagens em php mas gostaria de enviar a imagem e o texto colocando ambos em um textarea acho que assim ficaria bem mais interessante alguém pode me ajuda?
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.