在PHP中检索加密的密码


Retrieving an encrypted password in PHP

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

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

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

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

  1. 使用相同的算法对提交的密码进行Hash。
  2. 从数据库中获取用户的密码哈希值
  3. 比较两个哈希值。如果它们匹配,凭证就OK。

  • 不要使用sha1进行密码哈希,它不够安全
  • 每个证书使用一个唯一的盐,不要每次重复使用相同的盐。

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

所有你需要的:

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; }
}