关于mysql:在PHP中检索加密密码

Retrieving an encrypted password in PHP

本问题已经有最佳答案,请猛点这里访问。

以下代码是我在PHP中用来加密密码的代码…

1
$password = sha1(sha1($_POST['password']).sha1("mySalt@$#(%"));

我可以使用什么代码,以便用户使用键入的内容登录?


sha1是一种哈希算法,而不是双向加密。无法检索原始密码。

  • 使用相同的算法散列提交的密码。
  • 从数据库中获取有关用户的密码哈希。
  • 比较两个哈希。如果匹配,则凭据正常。
    • 不要使用sha1进行密码散列,它不够安全
    • 每个凭证使用一个唯一的salt,不要每次重复使用相同的salt。


    密码散列应该使用crypt,sha1/md5太弱。

    你所需要的一切:

    1
    2
    3
    4
    5
    6
    function check_password($password) {  
        ...//get db password to compare
        if (crypt($post_password, $db_results[0]['password']) == $db_results[0]['password']) {  
            return true;  
        } else { return false; }
    }