在PHP中生成密码功能
我之前曾经讨论过生成随机密码。尽管该函数生成了一些不错的密码,但它们可能不如应有的独特。
该功能取自Webtoolkit,可创建具有不同复杂程度的不同长度的密码。
function generatePassword($length=9, $strength=0) {$vowels = 'aeiu';
$consonants = 'bdghjmnpqrstvxyz';
if ( $strength & 1 ) {
$consonants .= 'BDGHJLMNPQRSTVWXYZ';
}
if ( $strength & 2 ) {
$vowels .= 'AEU';
}
if ( $strength & 4 ) {
$consonants .= '23456789';
}
if ( $strength & 8 ) {
$consonants .= '@#$%';
}
$password = '';
$alt = time() % 2;
for ($i = 0; $i < $length; $i++) {
if ($alt == 1) {
$password .= $consonants[(rand() % strlen($consonants))];
$alt = 0;
} else {
$password .= $vowels[(rand() % strlen($vowels))];
$alt = 1;
}
}
return $password;
}
第一个参数是函数应返回的字符数。第二个参数是一个最大为8的数字,它转换为复杂度。最少复杂的密码仅包含小写辅音。最复杂的密码由大写和小写字母以及数字和符号组成。
您可能会注意到某些字母和数字丢失了,这是有意的。生成密码时,许多字符可能非常相似。零看起来像是大写的O,而我看起来像是数字的小写L。删除这些字母会阻止人们输入错误的密码,以后不得不重新申请密码。而且,即使您不应该写下许多密码,即使这样做,许多人看起来也一样。例如,在混合使用大写和小写字母时,很难看到大写和小写字母W之间的差异。
您可以像这样运行该函数。
echo generatePassword(8,1); // 放任自流echo generatePassword(8,2); // 使用者
echo generatePassword(8,3); // 迷宫
echo generatePassword(8,4); // tanapa3a
echo generatePassword(8,5); // ary2ugeR
echo generatePassword(8,6); // utebyq
echo generatePassword(8,7); // yRysuNEV
echo generatePassword(8,8); // ygyqyha%
这只是我从这些参数中获得的输出,每次都运行一个不同的密码。您应该将8级用于任何系统管理员密码。
以上是 在PHP中生成密码功能 的全部内容, 来源链接: utcz.com/z/338877.html