【发布时间】:2014-10-03 11:27:34
【问题描述】:
最新版 Yii 1.x has password hashing build in。但是,我们是否有内置的 MD5 验证器,所以我可以检查特定字段是否真的包含有效的 MD5 哈希?
如果没有,如果我需要自己编写,是否有任何示例来源,我可以重复使用(不重新发明轮子)?还是我必须完全从头开始编写自己?
【问题讨论】:
标签: validation yii md5
最新版 Yii 1.x has password hashing build in。但是,我们是否有内置的 MD5 验证器,所以我可以检查特定字段是否真的包含有效的 MD5 哈希?
如果没有,如果我需要自己编写,是否有任何示例来源,我可以重复使用(不重新发明轮子)?还是我必须完全从头开始编写自己?
【问题讨论】:
标签: validation yii md5
这是一个示例验证器代码:
public function validateMd5($attribute, $params)
{
if(!$this->hasErrors() && $this->password !== '')
{
if(!preg_match('/^[a-f0-9]{32}$/', $this->password))
$this->addError('password', 'Password field must contain valid MD5 hash!');
}
}
这就是,如何将它添加到您的模型中(在rules() 方法中):
array('password', 'validateMd5', 'on'=>array('create', 'update'))
此代码仅验证用户输入到 password 字段的字符串是否是有效的 MD5 哈希值。它不验证密码本身。为此,您应该考虑例如 CPasswordHelper::verifyPassword 方法(例如
this answer)。
【讨论】:
verifyPassword 使用了一些匹配系统,将在某个时候检查它。无论如何都做得很好。