MD5 валидатор для Yii

В последней версии Yii 1.x встроена функция хэширования паролей. Но есть ли у нас сборка в валидаторе MD5, поэтому я могу проверить, действительно ли конкретное поле содержит допустимый хеш 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 (пример в этом ответе).

licensed under cc by-sa 3.0 with attribution.