0
Yii 1.x has password hashing build in的最新版本。但是,我們是否有MD5驗證器的內部版本,所以我可以檢查,如果特定的字段確實包含有效的MD5哈希?Yii的MD5驗證器
如果不是,如果我需要自己寫自己,是否有任何來源的例子,我可以重用(不重新發明輪子)?還是我必須從頭開始寫自己?
Yii 1.x has password hashing build in的最新版本。但是,我們是否有MD5驗證器的內部版本,所以我可以檢查,如果特定的字段確實包含有效的MD5哈希?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中的示例)。
完美答案,謝謝!我只是讓自己重新編輯你的代碼,使其成爲全功能的Yii驗證器,而不僅僅是驗證功能 - 你的建議。除了這個小編輯,當然,所有的榮耀都歸於你! :] – trejder 2014-10-03 14:04:37
'verifyPassword'使用一些匹配系統,將在某個時候檢查它。無論如何,好工作。 – ineersa 2014-10-03 14:07:27