1.dart/flutter版本,最少8位,包含大小写数字特殊字符3种组合以上
/// 是否是弱密码
static bool isWeakPassword(String password) {
if (password?.isNotEmpty != true) return true;//密码为空,弱密码
if (password.length < 8) return true;//位数不足,弱密码
Set set = HashSet();
for (var code in password.codeUnits) {
if (code >= 48 && code <= 57)
set.add('数字');
else if (code >= 65 && code <= 90)
set.add('大写');
else if (code >= 97 && code <= 122)
set.add('小写');
else
set.add('特殊');
}
return set.length < 3;//种类小于3种,弱密码
}
2.php版本,我不会php,以下代码是一边百度,一边参考上面的代码在记事本上写的,格式化和规范有点乱,最少6位,2种组合
<?php
function isWeak($pwd) {
if (strlen($pwd) < 6) {
return true;
}
$set = array();
foreach (str_split($pwd) as $ch){
$ascii = ord($ch);
if($ascii >=48 && $ascii <= 57) $set['数字']=true;
elseif($ascii >=65 && $ascii <= 90) $set['大写']=true;
elseif($ascii >=97 && $ascii <= 122) $set['小写']=true;
else $set['特殊']=true;
}
return sizeof($set) < 2;
}
var_dump( isWeak('aaa@11'));
网友评论