0

これは私のコードです。パスワードを除いて機能しますが、これをどのように修正しますか?私はmd5で何かをすべきだと知っていますが、自分のコードで動作するソリューションを見つけることができませんでした。私は本当にこれを正しく安全にする必要があります、助けてください

                //get the posted values
    $username=htmlspecialchars($_POST['user_name'],ENT_QUOTES);
    $password=htmlspecialchars($_POST['password'],ENT_QUOTES);

    $check_for_username = $mysqli->query("SELECT username FROM q4jli_users WHERE username='$username' AND password=MD5('$password')"); 
    if (mysqli_num_rows($check_for_username)) {     
        echo "yes";  

    } else {
        echo "no";                                                                           
    }

前もって感謝します

4

2 に答える 2

0

まず、ユーザーのパスワードが MD5 でデータベースに暗号化されていることを確認する必要があります。そうでない場合は、次のコードを使用できます。

$mysqli->query("INSERT INTO q4jli_users (username, password) VALUES ('$username', MD5('$password'))");

次に、ユーザーが正しいパスワードを入力したかどうかを確認したら、パスワードを MD5 に暗号化し、データベースでクエリを実行する必要があります。

$check_for_username = $mysqli->query("SELECT username FROM q4jli_users WHERE username='$username' AND password=MD5('$password')");
于 2012-04-11T17:58:09.773 に答える
0

MD5 は時代遅れであり、もはやパスワード暗号化の十分な方法ではありません。より最新の暗号化アルゴリズムを使用してソルト ハッシュを調査する必要があります。

考察の材料: bcrypt

于 2012-04-11T18:02:44.783 に答える