Como utilizar Bcrypt?
Boa tarde pessoa,
estou tentando utilizar o bcrypt para criptografia de senhas, so que estou tendo problemas ao utilizar.
CADASTRO.PHP
require("../include/conecta.php");
$nome = $_POST['nome'];
$email = $_POST['email'];
$senha = $_POST['senha'];
$confirme = $_POST['confirme'];
$custo = '08';
$salt = 'Cf1f11ePArKlBJomM0F6aJ';
$nome_scape = addslashes($nome);
$email_scape = addslashes($email);
$senha_scape = addslashes($senha);
$confirme_scape = addslashes($confirme);
$hash = crypt($senha_scape, '$2a$' . $custo . '$' . $salt . '$');
$sqlInfoUser = $pdo->prepare("SELECT * FROM usuarios WHERE email = :email");
$sqlInfoUser->bindValue(":email", $email_scape, PDO::PARAM_STR);
$sqlInfoUser->execute();
$linhaInfo = $sqlInfoUser->fetch(PDO::FETCH_ASSOC);
if($sqlInfoUser->rowCount() > 0):
echo "Já existe um usuario com esse email cadastrado no nosso banco de dados";
else:
if($senha_scape == $confirme_scape):
$sqlInsert = $pdo->prepare("INSERT INTO usuarios (nome, email, senha) VALUES (:nome, :email, :senha)");
$sqlInsert->bindValue(":nome", $nome_scape, PDO::PARAM_STR);
$sqlInsert->bindValue(":email", $email_scape, PDO::PARAM_STR);
$sqlInsert->bindValue(":senha", $hash, PDO::PARAM_STR);
$sqlInsert->execute();
else:
echo "As senhas não consistem, por favor digite-as novamente!";
endif;
endif;
?>
LOGIN.PHP
<?php
session_start();
$pdo = new PDO(
"mysql:host=localhost;dbname=teste", 'root', ''
);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$email = $_POST['email'];
$senha = $_POST['senha'];
@$acesso = $_POST['acesso'];
$email_escape = addslashes($email);
$senha_escape = addslashes($senha);
$acesso_escape = addslashes($acesso);
try{
$sqlVerifica = $pdo->prepare("SELECT * FROM usuarios WHERE email = :email");
$sqlVerifica->bindValue(":email", $email_escape, PDO::PARAM_STR);
$sqlVerifica->execute();
$linhaVerifica = $sqlVerifica->fetch(PDO::FETCH_ASSOC);
if(crypt($senha_escape, $linhaVerifica['senha']) === $linhaVerifica['senha']){
$senhaTratada = $linhaVerifica['senha'];
// Prepara a consulta
$sqlUser = $pdo->prepare("SELECT * FROM usuarios WHERE email = :email AND senha = :senha");
$sqlUser->bindValue(":email", $email_escape, PDO::PARAM_STR);
$sqlUser->bindValue(":senha", $linhaVerifica['senha'], PDO::PARAM_STR);
// Valida a consulta
// Executa a consulta
$sqlUser->execute();
$linha = $sqlUser->fetch(PDO::FETCH_ASSOC);
if($sqlUser->rowCount() > 0){
$_SESSION['email'] = $email_escape;
$_SESSION['senha'] = $senha_escape;
$_SESSION['nome'] = $linha['nome'];
echo "Opa, Logamos -> $_SESSION[email]";
}
}else{
unset($_SESSION['email']);
unset($_SESSION['senha']);
echo "Não Foi, $email_escape -> $linhaVerifica[senha]";
}
}catch(PDOException $erroBusca){
echo 'erro ao buscar' . $erroBusca->getMenssage();
}
porem nunca e efetuado o login, sempre da a mensagem de "Não Foi"
Discussão (3)
Carregando comentários...