1

アカウントに対して複数のブルート フォース攻撃が行われた場合にユーザーに警告する関数を作成したいと考えています。この関数は、75% を超える文字列一致がある場合にユーザーに警告します。私はこれを実行しました:

function Password_Match ($String, $Stored_Password){
    $New_String = str_split($String);
    $New_Stored_Password = str_split($Stored_Password);
        $Match = 0;
    foreach ($New_String AS $Value){
        if (in_array($Value,$New_Stored_Password)){
            $Match++;
        }
    }
    return $Match;

}

$String = "Test";
$Pass = "Tesst";
echo Password_Match($String,$Pass);

これは 4 を返しますが、私のコードには明らかに問題があり、解決策を見つけることができません。援助は素晴らしいでしょう。

4

3 に答える 3

0

パスワードは一方向暗号化を使用して暗号化する必要があり、プレーン テキストとしてデータベースに保存しないでください。しかし、本当にこの方法でアプローチしたい場合は..次のようにしてみてください:

function Password_Match ($String, $Stored_Password){
    similar_text($String,$Stored_Password,$Percentage);
    if ($Percentage > 75){
        return true;
    }
    return false;
}
于 2013-06-22T14:34:55.293 に答える