ベストプラクティス:パスワードをテーブルに保存する最も安全な方法は何ですか?[閉まっている]

StackOverflow https://stackoverflow.com/questions/1592608

質問

PHPを使用しています。私はネイティブの mysql 関数 passwd() を使用してパスワードを保存していました。パスワード() はもう安全ではないと言われました。PHP にパスワードを保存する最良の方法は何でしょうか?MD5ですか?

役に立ちましたか?

解決

2016 年に更新された回答:

の優勝者は、 PHC (パスワードハッシュ化コンテスト) アルゴン2. 。2016 年の時点では、Argon2 を使用してパスワードをハッシュすることがベスト プラクティスです。

PHC は 2013 年から 2015 年までオープン コンペティションとして開催されました。これは NIST の AES および SHA-3 コンペティションと同じ種類のプロセスであり、暗号標準を開発する最も効果的な方法です。多くの優れたデザインを含む 24 件の候補があり、その結果、ルクセンブルク大学の Alex Biyukov、Daniel Dinu、Dmitry Khovratovich によって設計されたアルゴリズムである Argon2 が 1 件の受賞者に選ばれました。

従来のアルゴリズムではなく Argon2 を使用することをお勧めします。

リファレンス実装は GitHub で入手できます.

2012 年に更新された回答:

以下に示した最初の回答は、かつてはベスト プラクティスであると考えられていました。しかし、ハッシュ コンピューティング技術の進歩により、これらのスキームは脆弱になってきました。今後、安全なパスワード ハッシュ スキームは、次のような反復ハッシュのみとなります。 bcrypt そして PBKDF2. 。完全な議論については、を参照してください。 ジェフ・アトウッドの分析.

元の回答 2009:

最初に を追加することをお勧めします パスワードに値を入力し、その後に ハッシュ化 次のような適度に強力なハッシュ関数を使用した結果の文字列 SHA256. 。これにより、明白なパスワード (プレーン テキストのパスワード) とそれほど明白でないパスワード (パスワードを使用した攻撃) から保護されます。 レインボーテーブル).

この方法でパスワードを保存すると、 ない ユーザーの紛失したパスワードを取得できるようになります。彼らはパスワードをリセットすることしかできません。これは、 一方向ハッシュ. 。ただし、この制限は通常、より安全なパスワード ストレージ システムを犠牲にする価値があります。たとえデータベースが侵害されたとしても、ユーザーのパスワードは依然として非常に困難であり、攻撃者が回復するのはおそらく現実的ではありません。

他のヒント

bcryptのは、実際にはより安全です。参照:<のhref = "http://chargen.matasano.com/chargen/2007/9/7/enough-with-the-rainbow-tables-what-you-need-to-know-about-s.htmlを「REL =」nofollowを ">十分ではザ・レインボーテーブルを:セキュリティで保護されたパスワードスキームについて何を必要とするために知っの

あなたは塩にパスワードが必要になります。

vBulletinによっては、パスワードを格納するにはかなり良い仕事をしていません。 MD5(MD5(パスワード)+塩);

は、他の答えを主張するには、vBulletinによっては、パスワードをハッシュの恐ろしい仕事をしていません。彼らの塩はわずか3文字のみを分別アプリケーションのセキュリティを強化されます。

http://www.openwall.com/phpass/ にチェックしてください。彼らは、各パスワードに固有の長いハッシュを使用して、および時間のMD5何千を通じてパスワードを実行しているの優れた仕事をします。それはそこにphpのための最高のハッシュシステムの1つです。

あなたは芋、あなたの最良の選択肢だユーザーのパスワードを保存しないようにすることができます。 (StackOverflowのような)使用のOpenIDは、ユーザーを認証します。またはライブ認証( http://dev.live.com/liveid/ を)。あなたは本当に、本当にユーザーを自分で認証する必要がある場合。アサフは、彼の答えで述べている何をすべきか。 :)

塩とハッシュます。

私たちは通常、塩としてランダムなGUIDを使用して、ハッシュへのSHA512ます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top