2016-11-01 7 views
-2

私はこのコマンドでmysqlテーブルにデフォルトのユーザ名とパスワードを作成しました。mysql fuctionはphpに等しい。 password_hash?

insert into users (email, password) values('admin', md5('1234')); 

そして、phpで検証しようとしました。

password_verify($_POST['password'], $results['password']) 

しかし、それは確認されません..しかし、私は

$stmt -> bindParam(':password', password_hash($_POST['password'], 
PASSWORD_BCRYPT)); 

でユーザー名とパスワードを作成するかどうかは確認することができます。..

私の質問:

I mysqlコマンドでデフォルトのユーザ名とパスワードを作成し、Webサイト(php)にユーザ入力で確認してほしいと思っています。

これを行うには、パスワード暗号化にどのmysql関数を使用する必要がありますか? MD5()

おかげでたくさん

+3

mysqlには 'password_hash'と同等の機能がありません。これはあなたがそれを保存する方法です。平文のパスワードではなく、ハッシュを保存します。あなたはよくやっている。 – Andrew

+1

重複していません。質問は遠隔に関連することさえありません。 – Andrew

+0

@Andrew&user7099140、mysqlは 'password_hash'と同等の機能を持っています。これは' PASSWORD'関数[MySql Password Hashing](http://dev.mysql.com/doc/refman/5.7/en/password-hashing.html)です。 – Haridarshan

答えて

2

最初にいくつかのことを明確にすることができます。.. PHPでpassword_hashに等しくないと思わ:とpassword_verifyは純粋にPHPいる

password_hashを機能。彼らはMYSQLとは何の関係もありません。

password_hashはパスワードをハッシュするのにMD5アルゴリズムを使用しません。あなたはfind more information about it in the docsです。

これをどのように使用し、ワークフローはどのように見えるのですか?あなたのケースでは

$hash = password_hash('your_password'); // Generates hash $verified = password_verify('your_password', $hash) // Verifies password against hash var_export($verified) // Would echo boolean true

、あなたがすべきである:

  1. あなたは、あなたがユーザーをフェッチで誰かをログインするためのユーザー
  2. を格納するデータベース内のハッシュは、データベース
  3. からハッシュストア
  4. 上記と同じように、ハッシュに対してパスワードを確認してください。

私はそれが役に立ちそうです。

+0

また、md5とpassword_hash()は2つの異なる長さを生成し、OPはパスワード列の長さが(60長さ、分)文字列に対応できる長さであることを確認する必要があります。 –

関連する問題