【问题标题】:CakePHP - Authenticating with MD5CakePHP - 使用 MD5 进行身份验证
【发布时间】:2014-04-30 17:51:37
【问题描述】:

我正在开发一个需要连接到远程数据库进行身份验证的 CakePHP 应用程序。密码使用 MD5 加密存储,当我编写应用程序时,我对本地主机数据库使用了 sha 加密,现在应用程序不允许我登录,因为架构不同。如何强制 cakePHP 使用 MD5 对用户进行身份验证?

【问题讨论】:

  • 它是否绝对需要在 MD5 中?它被认为是密码破解en.wikipedia.org/wiki/MD5
  • 你也可以使用纯文本。
  • 我知道 MD5 根本不推荐,但旧系统是在 2 年前实施的......现在我需要应对它,直到我将所有东西都从 MD5 散列改变......

标签: php cakephp authentication md5


【解决方案1】:

参考来自here

我不建议在任何情况下都使用此代码。 MD5 是一种可怕的安全性哈希算法,因为它资源太少,无法阻止破解。它也有已知的漏洞。使用 bcrypt 或 SHA-512。

为此,您可以像这样编辑AppController.php

<?php
// AppController.php

public function beforeFilter()
{
    Security::setHash('md5');
}
?>

但是,不建议这样做,因为 MD5 是一种非常糟糕的密码散列算法。你最好添加一个功能,允许用户使用现有的md5 密码登录,鼓励他们升级到新的哈希,并且不允许任何新用户设置 MD5 密码。

如果您想使用像 bcrypt 这样的安全函数,您可以执行以下操作:

<?php
// AppController.php

public function beforeFilter()
{
    Security::setHash('blowfish');
}
?>

在将明文值与哈希值进行比较时,您必须将原始哈希值作为盐值传递以保留成本参数等:

$newHash = Security::hash($newPassword, 'blowfish', $storedPassword);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-05
    • 1970-01-01
    • 2012-11-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多