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

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

这比平淡有多安全?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]!";}


慕标5832272
浏览 811回答 3
3回答

桃花长相依

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

幕布斯6054654

一个更好的方法是让每个用户都有一个独特的盐。使用SALT的好处是,攻击者很难预先生成每个字典单词的MD5签名。但是,如果攻击者了解到您有固定的盐,那么他们就可以预先生成由固定盐前缀的每个字典单词的MD5签名。一个更好的方法是,每次用户更改密码时,您的系统就会生成一个随机盐,并将该盐与用户记录一起存储。这使得检查密码变得更加昂贵(因为您需要在生成MD5签名之前查找SALT),但它会使攻击者更难预先生成MD5。
打开App,查看更多内容
随时随地看视频慕课网APP