【问题标题】:MD5 validator for YiiYii 的 MD5 验证器
【发布时间】:2014-10-03 11:27:34
【问题描述】:

最新版 Yii 1.x has password hashing build in。但是,我们是否有内置的 MD5 验证器,所以我可以检查特定字段是否真的包含有效的 MD5 哈希?

如果没有,如果我需要自己编写,是否有任何示例来源,我可以重复使用(不重新发明轮子)?还是我必须完全从头开始编写自己?

【问题讨论】:

    标签: validation yii md5


    【解决方案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)。

    【讨论】:

    • 完美答案,谢谢!我只是让自己重新编辑您的代码,使其成为功能齐全的 Yii 验证器,而不仅仅是验证功能——您所建议的。除了这个小编辑,所有的荣耀都归你所有! :]
    • verifyPassword 使用了一些匹配系统,将在某个时候检查它。无论如何都做得很好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-02
    • 1970-01-01
    • 1970-01-01
    • 2015-11-25
    • 1970-01-01
    • 2014-01-08
    • 1970-01-01
    相关资源
    最近更新 更多