2017-07-03 9 views
0

私は暗号化についてあまり知りませんでしたので、私の知識の湖を赦してください。私は暗号化にcodeigniterデフォルトライブラリを使用しました。このライブラリーでは、postgresqlのcodeigniterのデフォルトの暗号化されたパスワードと一致しますか?

デフォルトでは、暗号化ライブラリーは、構成済みのencryption_keyおよびSHA512 HMAC認証を使用して、CBCモードでAES-128暗号を使用します。

私はこの暗号化の鍵を設定しました。今まで私は新しいユーザーを登録しました。しかし今はログインのために私はパスワードと一致する必要があります。私はpostgresqlを使ってこれをどのように達成できるのか知りたいですか?私はmd5記事を見ましたが、AES暗号化は見ていません。

また、ユーザー名と暗号化されたパスワードの両方をチェックするか、パスワードを取得して復号化して、それを挿入されたパスワードと照合する正しい方法は何ですか?

P.S:否定投票の場合は、コメントを残すことを忘れないでください:) 歓声!

+2

https://secure.php.net/manual/en/function.password-verify.phpこれを実行しようとしないでください。ハッシュと暗号化は異なるものです。 'password_hash()'と 'password_verify()'を使ってください。 – Narf

+0

@Narfだからあなたの提案。あなたは精巧にできますか –

+2

私は文字通り、あなたが使用する必要のある2つの機能を教えました...パスワードをハッシュするためのものと、ハッシュを検証するためのものです。詳しくは何もない。 – Narf

答えて

1

あなたは慎重にCodeIgniter's Encryption Libraryのドキュメントを読んでいる場合、あなたはそれが明確にそれがパスワードの保存のために使用すべきではないと述べていることがわかります:

は、ユーザーのパスワード保存のために、このまたは任意の他の暗号化ライブラリを使用しないでください!代わりにパスワードをハッシュしなければならず、PHP独自のPassword Hashing拡張機能を使用してパスワードを設定する必要があります。 password_hash() & password_verify()

PHP's own Password Hashing extensionはNarfが彼のコメントで述べた二つの機能が含まれています。

詳細情報については、あなたがここからの例を確認することができます。

+0

私はそれを読んだ。私はそれがPHP側でmd5を使用する方が良いと思う。暗号化は良いですが、このように私はパスワードマッチングでより多くを扱わなければなりません。 –

関連する問題