私のウェブサイトでは、次の MySQL 関数を使用してデータベースにユーザー パスワードを保存しました。
ENCRYPT('password', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16)))
ユーザーがログインするには、データベース内の値で指定したパスワードを確認する必要があります。
私はそれがこれと同じくらい簡単だと思いました:
SELECT user FROM users WHERE id = $id AND password = ENCRYPT('$password', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16)))
ただし、RAND() 関数が原因でこれが機能しないことが明らかになりました...
では、このパスワードを PHP (または mysql) で再作成して、暗号化されたパスワードと照合するにはどうすればよいでしょうか? crypt() または hash() を使用する必要があると思いますが、PHP を使用するか MySQL を使用するかは正直わかりません。
MySQL バージョン 5.5、PHP バージョン 5.3 を使用しています