-2
我有一列passwd
,我已经使用算法PASSWORD()
加密了一列。我想比较用户输入的密码与存储在数据库中的变量 。我想先对另一个变量中的值进行加密并对它们进行比较。我想将mariaDB中加密的值与用户在登录中设置的值进行比较
我更改列如下:
UPDATE customer SET passwd_enc=PASSWORD(passwd);
我做的登录是这样的:
<?php
$u = $_REQUEST['username'];
$p = $_REQUEST['pass'];
$sql="SELECT * FROM customer WHERE uname=? AND passwd_enc=?";
if(! $stmt = $mysqli->prepare($sql)) {
echo "Error: " . $mysqli->error;
}else($stmt = $mysqli->prepare($sql)) {
$stmt->bind_param("ss", $u,$p);
$stmt->execute();
$result = $stmt->get_result();
$row = $result->fetch_assoc();
if($row['uname']==$u && $row['passwd_enc']==$p) {
print "Welcome $u";
$_SESSION['username'] = $u;
} else {
print "Unknown user";
$_SESSION['username'] = '?';
}
if($row['is_admin']==1){
$_SESSION['is_admin']='admin';
}else{
$_SESSION['is_admin']='user';
}
}
?>
事情是这样的:
$p=$_REQUEST['pass'];
$p_enc=encrypt($p);
if($p==(encrypted variable in db))
注:我想encyption到像PASSWORD()
函数那样完成。
你为什么要使用这个而不是'password_hash()'和'password_verify()'? –
请将来更多关注你的语法,拼写和格式。如果您已经使用了四个空格,则不需要使用该符号。 – Tiskolin
@Tiskolin似乎有点苛刻,这是OP的第一个问题...... –