密码哈希实现

use*_*538 3 doctrine symfony1

我正在使用Symfony开发一个新的应用程序.我想存储密码哈希,所以我覆盖了我的用户模型中的save方法:

public function save(Doctrine_Connection $conn = null)
{
    $this->setUserPassword( md5($this->getUserPassword()) );
return parent::save($conn);
}
Run Code Online (Sandbox Code Playgroud)

这在新用户创建时很有效.但是,当我们在不更改密码的情况下编辑用户时会出现问题.这会导致Doctrine散列已经散列的密码.

因此,我需要检查是否在此DoctrineRecord实例中修改了UserPassword.我怎么能设法做到这一点?

use*_*538 8

解决方案:我们只需覆盖setter方法:

public function setUserPassword($password)
{
    return $this->_set('user_password', md5($password));
}
Run Code Online (Sandbox Code Playgroud)