Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom pessoal, minha dúvida é a seguinte, tenho um sistema de login em php,
eu tentei criptografar o campo senha, pesquisei e achei uma maneira, até ai beleza, mais quando eu tento logar no site aparece que a senha ta errada, ai eu vo no banco de dados, copio a senha criptografada e loga, então eu gostaria de saber como criptografar e configurar a página de login para receber os dados
Cód. da página login.php
<?php require_once('Connections/config.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
?>
<?php
// *** Validar a solicitação para logar.
if (!isset($_SESSION)) {
session_start();
}
$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
$_SESSION['PrevUrl'] = $_GET['accesscheck'];
}
if (isset($_POST['email'])) {
$loginUsername=$_POST['email'];
$password=$_POST['senha'];
$MM_fldUserAuthorization = "";
$MM_redirectLoginSuccess = "/logando.php";
$MM_redirectLoginFailed = "<script> javascript:alert('Login e/ou senha inválidos'); </script>";
$MM_redirecttoReferrer = false;
mysql_select_db($database_config, $config);
$LoginRS__query=sprintf("SELECT email, senha FROM `user` WHERE email=%s AND senha=%s",
GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text"));
$LoginRS = mysql_query($LoginRS__query, $config) or die(mysql_error());
$loginFoundUser = mysql_num_rows($LoginRS);
if ($loginFoundUser) {
$loginStrGroup = "";
if (PHP_VERSION >= 5.1) {session_regenerate_id(true);} else {session_regenerate_id();}
//declare two session variables and assign them
$_SESSION['MM_Username'] = $loginUsername;
$_SESSION['MM_UserGroup'] = $loginStrGroup;
if (isset($_SESSION['PrevUrl']) && false) {
$MM_redirectLoginSuccess = $_SESSION['PrevUrl'];
}
header("Location: " . $MM_redirectLoginSuccess );
}
else {
echo ( $MM_redirectLoginFailed );
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Login</title>
</head>
<style type="text/css">
#login {
width:507px; /* Tamanho da Largura da Div */
height:320px; /* Tamanho da Altura da Div */
position:absolute;
top:40%;
margin-top:-100px; /* ou seja ele pega 50% da altura tela e sobe metade do valor da altura no caso 100 */
left:50%;
margin-left:-250px; /* ou seja ele pega 50% da largura tela e diminui metade do valor da largura no caso 250 */
background:url(img/login.png) no-repeat;
}
#login-input {
position:absolute;
width: 292px;
height: 110px;
left: 202px;
top: 17px;
}
</style>
<body>
<div class="login" id="login">
<div class="login-input" id="login-input"> <form id="form1" name="form1" method="POST" action="<?php echo $loginFormAction; ?>">
<p> </p>
<p> </p>
<table width="298" border="0">
<tr>
<td>Email</td>
<td><label for="email"></label>
<input name="email" type="text" id="email" size="30" /></td>
</tr>
<tr>
<td>Senha</td>
<td><label for="senha"></label>
<input name="senha" type="password" id="senha" size="30" maxlength="9" /></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="logar" id="logar" value="ENTRAR" /></td>
</tr>
</table>
</form>
</div>
</div>
</body>
</html>
Tabela do MySql
-- Estrutura da tabela user
--
CREATE TABLE IF NOT EXISTS `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`email` varchar(255) NOT NULL,
`senha` varchar(255) NOT NULL,
`cpf` varchar(255) NOT NULL,
`cash` int(11) NOT NULL,
`foto` varchar(255) NOT NULL,
`nome` varchar(255) NOT NULL,
`nivel` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `email` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;>
Qual tipo de criptografia você usou? Se você fez criptografia mesmo tem que descriptografar a senha do banco na hora de comparar com a senha digitada pelo usuário.
Agora se você usou um hash (md5 ou sha1 por exemplo), você precisa pegar a senha digitada pelo usuário e gerar o hash novamente antes de comparar com a senha que está no banco de dados.
Tem como você passar um exemplo pra mim?
Mas qual criptografia você está usando? No código que você postou só tem o login.
Vitor da uma olhada nesse link pra ver se te ajuda:
http://blog.thiagobelem.net/criptografando-senhas-no-php-usando-bcrypt-blowfish/
No código que eu postei não tem nada, por que eu não sei coloca '-'
Mas você disse que no banco está criptografado, como você fez pra criptografar?
Mas você disse que no banco está criptografado, como você fez pra criptografar?
Não ta mais, eu nem lembro como fiz, achei um código em um site que vc colocava na página de cadastro, automaticamente gerava um "código" no campo da senha assim: Exemplo. GFDjdfghdfgdf2851hg4fh4gf -- Entendeu?
Não era no banco era na página de cadastro, eu já nem tenho mais o código, perdi ele por que era inútil, vamos dizer assim.
Entendi, então você não tem a criptografia no cadastro pronta ainda.
Neste caso o link que o colega postou acima pode te ajudar, é um artigo que mostra como fazer e desfazer a criptografia.
Qual tipo de criptografia você usou? Se você fez criptografia mesmo tem que descriptografar a senha do banco na hora de comparar com a senha digitada pelo usuário.
Agora se você usou um hash (md5 ou sha1 por exemplo), você precisa pegar a senha digitada pelo usuário e gerar o hash novamente antes de comparar com a senha que está no banco de dados.