パスワードの辞書を使ったチェック

意外と簡単に書けるみたい。
辞書は1行に1パスワードと仮定する。

普通は完全一致だと思うけど、いちおう部分一致も書いてみた。

//辞書に含まれる単語は許可しない(完全一致)
//DICTIONARY_PATH は辞書のパスが書かれた定数と仮定
function check_k($password) {
    $dic = file(self::DICTIONARY_PATH, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
    foreach ($dic as $entry) {
        if ($entry == $password) {
            return false;
        }
    }
    return true;
}

//辞書に含まれる単語は許可しない(部分一致)
//DICTIONARY_PATH は辞書のパスが書かれた定数と仮定
function check_l($password) {
    $dic = file(self::DICTIONARY_PATH, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
    foreach ($dic as $entry) {
        if ( strpos($password, $entry) != false) {
            return false;
        }
    }
    return true;
}