PHP:验证当前密码

PHP:验证当前密码,php,Php,大家好,我正在我的项目中实施密码验证 验证当前密码以更改新密码 我的问题是: $res=mysql_query("SELECT * FROM users WHERE id=".$_SESSION['user']); $userRow=mysql_fetch_array($res); $pass = $userRow['password']; if(isset($_POST['update'])){ $id = $_SESSION['user']; $ne

大家好,我正在我的项目中实施密码验证

验证当前密码以更改新密码

我的问题是:

$res=mysql_query("SELECT * FROM users WHERE id=".$_SESSION['user']);
$userRow=mysql_fetch_array($res);
$pass = $userRow['password'];

    if(isset($_POST['update'])){
        $id = $_SESSION['user'];
        $new_pass = md5(mysql_real_escape_string($_POST['new_pass']));
        if($_POST['old_pass'] != $pass){
            ?>
                <script>alert('Wrong Old Password');</script>
             <?php
        }else if(mysql_query("UPDATE users SET password='$new_pass' WHERE id=$id")){
             ?>
                <script>alert('Password Successfully Updated');</script>
             <?php
         }else{
             ?>
               <script>alert('Failed');</script>
             <?php
         }
    }
$res=mysql\u查询(“从用户中选择*,其中id=“.$\u会话['user']);
$userRow=mysql\u fetch\u数组($res);
$pass=$userRow['password'];
如果(isset($_POST['update'])){
$id=$\会话['user'];
$new\u pass=md5(mysql\u real\u escape\u字符串($\u POST['new\u pass']);
如果($\u POST['old\u pass']!=$pass){
?>
警报(“错误的旧密码”);

是否将旧密码另存为md5?。如果是,则无法将旧密码(尚未进行md5加密)与从数据库检索到的md5加密密码相等

另外,请看这篇文章,解释为什么不使用md5


您的旧密码以加密格式存储。请尝试以下操作:

f(md5($_POST['old_pass']) != $pass)

问题是什么?问题是什么?问题是什么?1.不要使用
mysql\uuuz
。2.不要使用
md5
作为密码。3.问题是什么?另外,md5和无盐存储密码的效果更差。你最好将密码存储为纯文本。改为搜索PBKDF2。是否保存旧密码ssword为md5?。如果是这样,则无法将旧密码(尚未进行md5加密)与从数据库检索到的md5加密密码相等