亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 php 檢查密碼是否包含簡單序列

使用 php 檢查密碼是否包含簡單序列

PHP
長風秋雁 2023-04-28 14:51:29
我想用 php 檢查簡單的密碼模式,比如123456123456789abcde98764321101010202020是否有可能進行這樣的檢查而不依賴于維護預定義字符串數組?
查看完整描述

1 回答

?
ITMISS

TA貢獻1871條經驗 獲得超8個贊

只需遍歷每個字母并檢查下一個字母是否與當前字母相同,少一個或多一個。所以你可以創造一個獨特的分數。


對于最后一種情況,您可以檢查是否有重復字符并從樂譜中刪除。


$passwords = ['123456', '123456789', 'abcde', '98764321', '101010', '202020', 'xhdgszu'];


foreach ($passwords as $password) {

    $score = $length = strlen($password);

    $chars = str_split($password);


    for ($i = 0; $i < $length - 1; $i++) {

        $currentChar = $chars[$i];

        $nextChar = $chars[$i + 1];

        if ($currentChar === $nextChar

            || ord($currentChar) - 1 === ord($nextChar)

            || ord($currentChar) + 1 === ord($nextChar)

        ) {

            $score--;

            continue;

        }

    }


    $unique = array_unique($chars);

    $score -= $length - count($unique);


    echo "{$password}: {$score} / {$length} ", ($score < $length) ? 'Bad' : 'Good', PHP_EOL;

}

123456: 1 / 6 Bad

123456789: 1 / 9 Bad

abcde: 1 / 5 Bad

98764321: 2 / 8 Bad

101010: -3 / 6 Bad

202020: 2 / 6 Bad

xhdgszu: 7 / 7 Good


查看完整回答
反對 回復 2023-04-28
  • 1 回答
  • 0 關注
  • 164 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號