我的脚本没有达到预期的效果。我希望密码包含 A-Z、a-z、0-9 和特殊字符。
- A-Z
- a-z
- 大于等于 2 个 0-9
- 大于等于 2 个特殊字符
- 字符串长度大于等于 8
所以我想强制用户使用至少 2 位数字和至少 2 位特殊字符。我的脚本可以实现,但是强制我将数字或字符连续使用。我不想要这样。例如,密码 testABC55$$ 是有效的 - 但我不想要这个。
相反我想要 test$ABC5#8 也是有效的。所以基本上数字/特殊字符可以相同或不同 -> 但必须在字符串中分开使用。
PHP 代码:
$uppercase = preg_match('#[A-Z]#', $password);
$lowercase = preg_match('#[a-z]#', $password);
$number = preg_match('#[0-9]#', $password);
$special = preg_match('#[\W]{2,}#', $password);
$length = strlen($password) >= 8;
if(!$uppercase || !$lowercase || !$number || !$special || !$length) {
$errorpw = 'Bad Password';