CakePHP - 使用MD5进行身份验证

时间:2014-04-30 17:51:38

标签: php cakephp authentication md5

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

1 个答案:

答案 0 :(得分:2)

摘自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');
}
?>

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

$newHash = Security::hash($newPassword, 'blowfish', $storedPassword);
相关问题