【发布时间】:2010-12-17 21:16:59
【问题描述】:
我有以下 PHP 代码试图检查密码复杂性,但是当我运行它时,我似乎没有得到有效的结果(见下文)
while (odbc_fetch_row($rs)) {
$r1='/[A-Z]/'; //Uppercase
$r2='/[a-z]/'; //lowercase
$r3='/[!@#$%^&*()-_=+{};:,<.>]/'; // whatever you mean by 'special char'
$r4='/[0-9]/'; //numbers
if (!preg_match_all($r4, odbc_result($rs,"U_password"))) {
echo "Password doesn't contain numbers: " . odbc_result($rs,"U_Mailbox") . "@" . odbc_result($rs,"U_Domain") . " " . odbc_result($rs,"U_password") . "<br>\n";
}
if (!preg_match_all($r2, odbc_result($rs,"U_password"))) {
echo "Password doesn't contain lowercase letters: " . odbc_result($rs,"U_Mailbox") . "@" . odbc_result($rs,"U_Domain") . " " . odbc_result($rs,"U_password") . "<br>\n";
}
if (!preg_match_all($r1, odbc_result($rs,"U_password"))) {
echo "Password doesn't contain uppercase letters: " . odbc_result($rs,"U_Mailbox") . "@" . odbc_result($rs,"U_Domain") . " " . odbc_result($rs,"U_password") . "<br>\n";
}
}
输出:
密码不包含小写字母:jason@domain.com lowercasepw
密码中的数字不足:service@domain.com 8B_dip+3
密码不包含大写字母:barry@domain.com Barrywidg@t1o
(顺便说一下,上面的密码不是真实的。我只是将小写字母替换为其他小写字母,将大写字母替换为其他大写字母,将数字替换为其他数字。)
所以我很困惑为什么我的代码不起作用。其他人可以帮忙吗?
谢谢 布拉德
【问题讨论】:
标签: php passwords complexity-theory