用于使用通配符验证密码的php正则表达式
我正在尝试向当前的纯字母数字正则表达式添加通配符,以增强密码验证。我不是试图要求用户输入通配符,只是允许他们输入通配符用于使用通配符验证密码的php正则表达式,php,regex,cakephp,Php,Regex,Cakephp,我正在尝试向当前的纯字母数字正则表达式添加通配符,以增强密码验证。我不是试图要求用户输入通配符,只是允许他们输入通配符 '/^[a-z0-9]{8,16}$/i' 我也在使用cakephp,并在模型中进行验证(如果有帮助的话),但这不是这个答案真正需要的 'rule' => '/^[a-z0-9]{8,16}$/i', 'on' => 'create', 'allowEmpty' => true 只需将
'/^[a-z0-9]{8,16}$/i'
我也在使用cakephp,并在模型中进行验证(如果有帮助的话),但这不是这个答案真正需要的
'rule' => '/^[a-z0-9]{8,16}$/i',
'on' => 'create',
'allowEmpty' => true
只需将您希望允许的字符添加到字符类(
[…]
):
只需将您希望允许的字符添加到字符类(
[…]
):
你完全错了。 不要对密码字段使用regexp。这样你就不允许用户输入任何东西,你只是不允许用户输入任何他想用作密码的东西(可能是一些特殊的字符,比如&或{或其他什么) 无论如何,你的方法弊大于利
您应该做的是,只需在密码字段旁边显示一个“红黄绿”指示灯,就可以鼓励用户使用特殊的、更复杂的密码。您完全错了。 永远不要对密码字段使用regexp。这样你就不允许用户输入任何东西,你只是不允许用户输入任何他想用作密码的东西(可能是一些特殊的字符,如&或{或其他什么) 无论如何,你的方法弊大于利
你应该做的是,鼓励用户使用特殊的和更复杂的密码,只需在密码字段旁边显示一个“红-黄-绿”指示器。我还认为你应该允许“一切”,从而删除对内容的验证,只禁止“空”字符串或过短字符串(理想情况下,使用实时javascript验证作为一个指标,这样人们就不必尝试10次就可以知道什么是有效的) 你不应该在意人们输入什么,即使是日语,因为你无论如何都要用CakePHP的内置函数、sha1、md5和salt对这个字符串进行编码(我希望如此!),最终你会得到一些无害的东西
使用
$this->Auth->password($string);
我还认为您应该允许“一切”,从而删除对内容的验证,并且只禁止“空”字符串或太短的字符串(理想情况下,使用实时javascript验证作为指示器,这样人们就不必尝试10次才知道什么是有效的)
你不应该在意人们输入什么,即使是日语,因为你无论如何都要用CakePHP的内置函数、sha1、md5和salt对这个字符串进行编码(我希望如此!),最终你会得到一些无害的东西
使用
$this->Auth->password($string);
什么是通配符?如果您想允许任何字符,只需使用^.{8,16}$
。你是说有效字符吗?这是针对日语网站的,我不想让他们输入日语字符和其他奇怪的字符。是的,我猜有效字符像!#$%&*etcJason,那么你的客户需要接受教育,为什么对密码施加复杂性限制是愚蠢的。复杂性要求是的,但为什么要设置密码ds故意不太安全?什么是通配符?如果您想允许任何字符,只需使用^.{8,16}$
。你是说有效字符吗?这是针对日语网站的,我不想让他们输入日语字符和其他奇怪的字符。是的,我猜有效字符像!#$%&*etcJason,那么你的客户需要接受教育,为什么对密码施加复杂性限制是愚蠢的。复杂性要求是的,但为什么要设置密码ds故意不那么安全?
/^[a-z0-9!#$%&]{8,16}$/i