最新版本的Yii 1.x has password hashing build in。但是,我们是否有一个MD5验证器的构建,所以我可以检查,如果特定字段真的包含有效的MD5哈希?
如果没有,如果我需要自己编写,是否有任何示例来源,我可以重复使用(不重新发明轮子)?或者我是否必须从头开始写自己?
答案 0 :(得分:1)
这是一个验证代码示例:
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)。