代码之家  ›  专栏  ›  技术社区  ›  Mujahid

如何在用户注册登录系统中实现MD5哈希?

  •  -1
  • Mujahid  · 技术社区  · 16 年前

    我正在使用PHP和Mysql。我想知道如何使用MD5发送散列的密码,并想在用户尝试登录时检查它。我试过了,但效果不太好。如果有人知道怎么做,请给我密码。

    3 回复  |  直到 16 年前
        1
  •  5
  •   Hank Gay    15 年前

    md5 不太适合这个目的。阅读 this article 学习如何和为什么,但是简短的版本是你应该使用 bcrypt 相反。一个快速的谷歌显示 PHPass 要求支持 bcrypt公司 .

    更新:正如@Dragontamer5788在评论中指出的, scrypt 甚至比 bcrypt公司 从理论的角度来看。作者擅长加密,但要知道,它比 bcrypt公司 在这一点上。我可能还是会选它,但它不像切好的那样干 bcrypt公司 结束 千年发展目标5 .

        2
  •  0
  •   Robus    16 年前
    //Register:
    $the_magical_salt = "everybody_is_obsessed_with_these_days$3^^2)(%=-"; // Even_though_md5_shouldnt_be_used
    mysql_query('insert into users values (NULL,'.$filtered_username.','.md5($password.$the_magical_salt).');');
    //Login:
    $res = mysql_query('select password from users where username = '.$filtered_username);
    $res = mysql_fetch_array($res);
    if(md5($_POST['password'].$the_magical_salt) == $res[0]) echo "Yeah, you're welcome.";
    else echo "Wrong password sugar";
    

    除了两次使用md5()函数之外,没有什么别的了。

        3
  •  0
  •   John Rasch    16 年前

    如果没有更多的信息,很难帮助你,但我相信你想要的是 Digest Authentication .

    以下是PHP文档中的一个示例(特别是示例7): http://php.net/manual/en/features.http-auth.php

    注意,这种类型的身份验证不能防止中间人攻击。例如,如果有人监听受害者网络上的流量,攻击者可以简单地使用经过消化的用户名/密码组合重放请求,而您的PHP脚本会很高兴地将攻击者验证为受害者。

    推荐文章