使用现有的MD5哈希与PHPass有任何安全隐患吗?

Tar*_*del 7 php migration security phpass

在我更清楚之前,我实现了一个使用md5作为哈希算法的登录系统.现在我知道的更好了,我想转向使用PHPass.我的问题是系统已经投入生产,要求所有用户更改密码将成为所有头痛的母亲.

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

我的解决方案如下:

更改

  1. md5($_POST['pass'])
  2. 检查md5哈希密码对数据库值

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

为了清楚起见,我只是重新编写了md5版本,因为这是我在数据库中已有的内容.它并不是一种额外的安全措施(尽管如此,那太棒了!).

You*_*nse 4

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

  2. 为了防止密码被窃取并针对其他网站上的同一用户使用(哦,天哪!),最重要的密码强度和盐。不是哈希算法本身。没有散​​列技术可以保护像“1234”或“joe”这样的愚蠢通行证。
    所以,md5 + strong password + average saltusual password + phpass

  3. 没有一个单一的理由来 phpass 现有的 md5 哈希值
    一个明智的迁移算法是

    • 检查此用户记录是否有新的哈希标志。
    • 如果已设置 -
      • 去 phpass auth
    • 如果不:
      • md5($_POST['通过'])
      • 根据数据库值检查 md5 散列密码
      • 如果正确:
        • phpass($_POST['通过'])
        • 将结果保存到数据库中
        • 为此记录设置新的哈希标志
    • 完毕