gpt4 book ai didi

php - 在 PHPass 中使用现有的 MD5 散列是否存在任何安全隐患?

转载 作者:可可西里 更新时间:2023-11-01 12:56:01 25 4
gpt4 key购买 nike

不知不觉中,我实现了一个使用 md5 作为哈希算法的登录系统。现在我知道得更多了,我想转而使用 PHPass。我的问题是该系统已经在生产中,要求所有用户更改他们的密码将是最令人头疼的问题。

我想出了一个足够简单的解决方案,但考虑到我之前的错误,我想确保我不会因为无知而犯下同样严重的错误。

我的解决方案如下:

改变

  1. md5($_POST['pass'])
  2. 根据数据库值检查 md5 散列密码

  1. md5($_POST['pass'])
  2. 将 md5 散列密码传递给 $hasher->HashPassword()
  3. 使用 $hasher->CheckPassword() 根据数据库中的值检查重新散列的密码

为了清楚起见,我只是重新散列 md5 版本,因为这是我在数据库中已有的版本。它不是作为一种附加的安全措施(尽管如果是,那就太好了!)。

最佳答案

  1. MD5() 问题在这个发烧友程序员社区网站上被夸大了。这个散列算法实际上没有什么不好的,特别是与通常的新手应用程序的其他部分相比。在普通 PHP 站点上使用 phpass 技术就像在草屋的纸门上使用安全锁。

  2. 要确保密码安全,防止虚拟被窃取和在其他网站上针对同一用户使用的可能性(哦,天哪!),最重要的是密码强度 和盐。不是哈希算法本身。 没有散列技术可以保护诸如“1234”或“joe”之类的愚蠢通行证。
    所以,md5 + strong password + average salt 优于 usual password + phpass

  3. phpass 现有的 md5 散列没有任何理由
    一个明智的迁移算法是

    • 检查此用户记录以获取新的散列标志。
    • 如果已设置 -
      • 获取 phpass 身份验证
    • 如果不是:
      • md5($_POST['通过'])
      • 根据数据库值检查 md5 散列密码
      • 如果正确:
        • phpass($_POST['pass'])
        • 将结果存入数据库
        • 为这条记录设置新的散列标志
    • 完成

关于php - 在 PHPass 中使用现有的 MD5 散列是否存在任何安全隐患?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7297965/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com