2011-06-23 5 views
0

PHP/MySQLでパスワードを処理する最も安全な方法に関して、数時間にわたり多くの記事を掲載しています。ほとんどの回答はかなり古くなっているようであり、人々が指向するリンクも同様です。多くの人はmd5とsha-1をお勧めします。PHPパスワード2011年にハッシュする

私たちは皆、MD5とSHA-1は、それらが逆転していることと、数百万のmd5/sha1文字列を構築している多数のデータベースがあるために、もはや価値がないことを知っています。さて、明らかにあなたは私がやろうとしている塩でこれを回避します。

私は最近、ウォルプールで遊び始めました。これははるかに安全で、最新のものです。私は渦巻き+塩がパスワードの十分な保護だと思うのは正しいでしょうか?

<?php 
    $static_salt = 'some_static_salt_string_hard_coded'; 
    $password = 'some_password_here'; 
    $salt = 'unique_salt_generated_here'; 

    $encoded = hash('whirlpool', $static_salt.$password.$salt); 
?> 

あなたはどう思いますか:

は、私が実際にこのような何かを検討していましたか?残忍であるか分かりやすい?

+1

ハッシュアルゴリズムを元に戻すことはできません。それらに対してのみテストすることができます。 – HyderA

+0

Openwallの[PHPパスワードハッシングフレームワーク](http://www.openwall.com/phpass/)(PHPass)も参照してください。ポータブルであり、多くの一般的なユーザーパスワードに対する攻撃に対して強化されています。フレームワーク(SolarDesigner)を書いた人は、[John The Ripper](http://www.openwall.com/john/)と書いて、[パスワードハッシングコンペティション](http://www.openwall.com/john/)の裁判官と同じ人です。 /password-hashing.net/)。だから彼はパスワードに対する攻撃について何か知っている。 – jww

答えて

1

これで十分です(ただし、静的にハードコードされた塩には意味がありません)。そして、なぜSHA256を使用しないのですか?ワールプールはめったに使われません。

+0

渦を使用するための私の主な考えは、その弱点のビットです。プラスの面では、あまり使用されていないため、一般に知られている脆弱性が少ない可能性があります。欠点として、将来のサポートやセキュリティ上の問題が発生する可能性があります。 – Sk446

+2

暗号/ハッシュの使用率が低いほど、脆弱性が隠されている可能性が高くなります:)広く使われているハッシュは全世界のコミュニティでテストされているため、大きな脆弱性が見つからない可能性がますます高まります。 –

3

これはおそらくほとんどのアプリケーションに適しています。

ただし、設定ファイルが漏洩した場合でも静的なものも含めて、DBが漏洩した場合、塩は(ほとんど)役に立たなくなります。それらはレインボーテーブルに対する優れた保護ですが、現在では、特定のハッシュをブルートフォースするためにGPUを使用する方が簡単です。

IMHO、現在the best solution is to use bcrypt。それは明らかにPHP 5.3+でサポートされており、here's an exampleの使い方は明らかです。

+0

正解です。あなたが尋ねなければならないなら、答えは 'use bcrypt'です。 – ZoFreX

0

特定のアルゴリズムのメリットについては、脅威モデルと実装の詳細をはるかに考慮しなくても特に意味がありません。

はい、ホワイトプールは、ハッシュとしての効果はいくつかの利点があるようですが、Nickolayによればそれは欺瞞的かもしれないと言われているため、あまり広く使われていません。しかし、アカウントごとに128文字の文字列を格納する目的によっては、不要なオーバーヘッドになる可能性があります。誰にとっても、ソフトウェアが何をサポートしているのか(また、異なるシステムへのアクセスを制御するために同じアカウントレコードを使用する人もいるかもしれません)の問題です。

一日の終わりには、それはあなたのハッシュアルゴリズムがどのように洗練された問題ではありません。自由に選択与え

  1. 、ユーザーは、ユーザーがために同じパスワードを使用します
  2. 悪い、推測できるパスワードを選びます異なるサービス

それはあなたのために働く - それは素晴らしい - しかし、普遍的な解決策はありません。

関連する問題