1.dart/flutter版本,最少8位,包含大小寫數(shù)字特殊字符3種組合以上
/// 是否是弱密碼
static bool isWeakPassword(String password) {
if (password?.isNotEmpty != true) return true;//密碼為空,弱密碼
if (password.length < 8) return true;//位數(shù)不足,弱密碼
Set set = HashSet();
for (var code in password.codeUnits) {
if (code >= 48 && code <= 57)
set.add('數(shù)字');
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,以下代碼是一邊百度,一邊參考上面的代碼在記事本上寫的,格式化和規(guī)范有點亂,最少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['數(shù)字']=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'));