我正在尝试使用 Auth 在我的 Kohana 应用程序中强制使用强密码,方法是使用以下正则表达式要求至少一个大写字母、一个小写字母、一个数字、一个非字母数字(特殊字符)和一个最小值8 个字符。
^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[^A-Za-z0-9]).{8,}$
正则表达式正在工作,如Rubular 所示。这是我在 Kohana 中使用的代码Model_Auth_User
,它扩展了ORM
.
public function rules() {
return array(
'password' => array(
array('not_empty'),
array('min_length', array(':value', 8)),
array('regex', array(':value', '/^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[^A-Za-z0-9]).{8,}$/'))
)
);
}
但是,在创建新用户帐户或更改现有用户帐户的密码时,此正则表达式似乎完全被忽略了。上面的min_length
行虽然工作正常!
它会阻止我test
用作密码,因为它少于 8 个字符,但testing123
不会给出任何类型的错误消息。
任何想法为什么会发生这种情况以及解决方法?