パスワードをハッシュする最善の方法は何ですか?私は良い仕事をする方法を知っていますが、PHP 7+でパスワードをハッシュするより良い方法があるかどうか疑問に思っていましたpassword_hash()
。 password_hashは十分ですか?パスワードをハッシュする最善の方法は何ですか? password_hashは安全か、PHP 7では安全な方法がありますか?
<?php
password_hash('PASSWORD HERE', PASSWORD_DEFAULT);
?>
パスワードをハッシュする最善の方法は何ですか?私は良い仕事をする方法を知っていますが、PHP 7+でパスワードをハッシュするより良い方法があるかどうか疑問に思っていましたpassword_hash()
。 password_hashは十分ですか?パスワードをハッシュする最善の方法は何ですか? password_hashは安全か、PHP 7では安全な方法がありますか?
<?php
password_hash('PASSWORD HERE', PASSWORD_DEFAULT);
?>
「私はPHP 7+でパスワードをハッシュするより良い方法があるならば、password_hash思っていました。十分password_hashますか?」
はい、安全で十分ですが、より良い/より安全な方法があります。 PHP 7.2より、Argon2は、PHPのバージョンを7.2にアップグレードしたい場合は、より堅牢なメソッドを提供するPassword Hashing Competitionを獲得した新しく実装された(ハッシング)メソッドの一部です。
この上wikiは述べている:
Argon2、パスワードハッシュ競争によって推奨されるパスワードハッシュアルゴリズムは、安全にパスワードをハッシュのための現代的なアルゴリズムです。アルゴン2は、最高のメモリ充填率のために設計され、トレードオフ攻撃に対する防御を提供しながら複数のコンピューティングユニットを効果的に使用する点で、既存のアルゴリズムのいくつかの重要な欠点を解決します。ただ1つのコスト要因を取るbcryptのとは異なり、Argon2は、三つの異なる要因によってパラメータ化される:
- アルゴリズム
- アルゴリズムの実行時間を定義する時間コストのメモリ使用量を定義するメモリコストとイテレーション
- の数と、あなたはまた、Libsodium 01の詳細情報が含まれて次のリンクに見ることができる並列スレッドの数
を定義する並列度、
http://php.net/manual/en/function.password-hash.phpのマニュアルには、PASSWORD_ARGON2I
の情報も含まれています。
チェンジ状態:
7.2.0 PASSWORD_ARGON2Iを使用してArgon2パスワードのサポートが追加されました。
PHP 7.2にアップグレードするオプションがない場合、あなたは「コスト」を高めることができます。
はthis answerからと関連のポストGenerating Password Hash In PHP 5.5 And Setting Cost Optionから引き出され、私は引用:
1によるコストパラメータの値を増やす、ハッシュ値を計算するために必要な時間を倍になります。コストパラメータは反復回数の対数(底2)です。つまり、次のことを意味します。
$ iterations = 2^$ cost;
また、スタックオーバーフローの上に、ここで、この他のQ & Aに相談することができます
がサイドノート:PHP 7.2がインストールされているサーバや、これを新しく認識していない人のための、より堅牢なハッシング手法を求めている人たちのための標準的なQ&Aとして役立つだろうと思う実装された(ハッシング)メソッド(PHP 7.2) –
デフォルトのアルゴリズムは時間とともに変化するので、 'PASSWORD_DEFAULT'パラメータを使うことは、将来的な証明になる可能性があります(まだ多くのメンテナンスされていないコードがまだ実行中です...)。しかし、Argon2がついにそれをPHP APIに組み込んだことを知っておきましょう。 – martinstoeckli
本当に@martinstoeckliとTBH、私はArgon2の風が1ヵ月ほど前にしかなかった。 PHP 7.2.0に追加/実装された、面白い(新しい)メソッドです。 –
はい、これはPHPで最高のパスワードハッシュの一つであり、あなたがしたい場合はセキュリティを向上させ、DEFAULT_PASSWORDよりも他のパスワードハッシュエンコーディングを選択します。
はい、PHPでできることは最善であり、将来の要件に適応します(アルゴリズムは交換可能です)。 – martinstoeckli
それは重複していません、私は質問を再開しました。 PHP 7.2以降、[Argon2](https://wiki.php.net/rfc/argon2_password_hash)はPHPのバージョンで実装され、より堅牢なハッシングメソッドを提供します。 –
誰かが、彼らが言っている複製でもう一度質問を閉じるよう投票しました。 OPは具体的にはよりよい方法があるかどうかを尋ねています。重複はこれをカバーしていません([Argon2](https://wiki.php.net/rfc/argon2_password_hash))。それにフラグを立てたり、フラグを削除したりしないでください。これは特定の質問であり、PHP 7以上です。 @RCを編集(ping)します。 –