为了账号安全,请及时绑定邮箱和手机立即绑定

如何安全地存储用户的密码?

如何安全地存储用户的密码?

慕标5832272 2019-06-11 20:55:45
如何安全地存储用户的密码?这比平淡有多安全?MD5?我刚开始调查密码安全问题。我对PHP非常陌生。$salt = 'csdnfgksdgojnmfnb';$password = md5($salt.$_POST['password']);$result = mysql_query("SELECT id FROM users                        WHERE username = '".mysql_real_escape_string($_POST['username'])."'                        AND password = '$password'");if (mysql_num_rows($result) < 1) {     /* Access denied */     echo "The username or password you entered is incorrect.";} else {     $_SESSION['id'] = mysql_result($result, 0, 'id');     #header("Location: ./");     echo "Hello $_SESSION[id]!";}
查看完整描述

3 回答

?
桃花长相依

TA贡献1860条经验 获得超8个赞

如果您使用参数化查询而不是连接SQL语句,您的用户将更加安全。和应该是唯一的每个用户,并应与密码哈希一起存储。


查看完整回答
反对 回复 2019-06-11
?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

一个更好的方法是让每个用户都有一个独特的盐。

使用SALT的好处是,攻击者很难预先生成每个字典单词的MD5签名。但是,如果攻击者了解到您有固定的盐,那么他们就可以预先生成由固定盐前缀的每个字典单词的MD5签名。

一个更好的方法是,每次用户更改密码时,您的系统就会生成一个随机盐,并将该盐与用户记录一起存储。这使得检查密码变得更加昂贵(因为您需要在生成MD5签名之前查找SALT),但它会使攻击者更难预先生成MD5。


查看完整回答
反对 回复 2019-06-11
  • 3 回答
  • 0 关注
  • 807 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信