0

ユーザーがサイトに登録すると、暗号化機能を使用して、このようにパスワードをデータベースに挿入します (データベースは mysql です)。

$qry = "INSERT INTO members(firstname, lastname, email, login, passwd) VALUES ('$fname','$lname','$email', '$login',ENCRYPT('$password'))";

ログイン時に一致すると、このクエリを使用しますが、機能していないようです。

$qry="SELECT * FROM members WHERE login='$login' AND passwd = ENCRYPT('$password')";

これが機能しないのはなぜですか?

4

2 に答える 2

0

パスワードの暗号化は簡単ではありません。スタック オーバーフローについて尋ねるべきではありません。

この記事では、正しいアプローチについて説明します: PHP パスワードの安全なハッシュとソルト

これをゼロから発明しないでください。scrypt、bcrypt、pbkdf2 などの業界標準で強力な方法が必要です。それらを使用する前に、それらがどのように機能するかを調べ、適切に実装していることを確認する必要があります。

実装に関する質問は、実際には security.stackexchange.com で質問する必要があります。スタック オーバーフローは実際にはセキュリティに関する質問の場所ではないからです。

これまでに投稿したテクニックは完全に間違っています。修正することはできません。最初からやり直して、別の方法で行う必要があります。

于 2013-10-24T23:25:07.897 に答える