パスワードの辞書を使ったチェック
意外と簡単に書けるみたい。
辞書は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; }