2012-06-24 7 views
6

私はパスワードを暗号化する必要がある登録フォームに取り組んでいます.Blowfish暗号化をパスワードとして使用することをお勧めします。 crypt()関数?また、私はにログインするためのパスワードを後で取得する予定です。BlowfishをPHPで暗号化するために

+0

[this](http://www.chilkatsoft.com/p/php_blowfish.asp)をご覧ください。 –

+1

パスワードを「暗号化」するのではなく、一方向のハッシュ関数を使用する必要があります。参照:[PHPでパスワードをハッシュするためにbcryptをどのように使用しますか?](http://stackoverflow.com/q/4795385/911182) – Herbert

+0

も読んでください:[ユーザーのパスワードを安全に保存するにはどうすればいいですか] /stackoverflow.com/questions/1581610/how-can-i-store-my-users-passwords-safely/1581919#1581919) – Jacco

答えて

6

短い答えは、塩が文字で始まるとcryptを使用している$ 2A $パラメータ、$の費用2桁、およびアルファベットの22桁./0-9A-Za-z。これは、Blowfish暗号化アルゴリズムをサポートするシステムでのみ機能します。しかし、PHP 5.3はそれをネイティブに実装しています。詳細はPHP manual — cryptを参照してください。

例:

crypt('rasmuslerdorf', '$2a$07$somesillystringforsalt') 

塩列が適切なアルゴリズムをトリガします。 の2つの数字パラメータは、Blowfishベースのハッシュアルゴリズムの繰り返し数のベース2の対数であり、範囲[04 – 31]でなければなりません。例7では、2 または128回の反復を使用するようにアルゴリズムに指示します。この数値が高いほど、ユーザーパスワードをハッシュするコンテキストでは、BOOを実行するのに時間がかかります。つまり、GOODです。

This answer to a similar questionは、BCryptがどのようなものか、それがブローフィッシュとどのように関係しているか、そしてなぜそれを使用すべきかを詳しく説明しています。他にも多くのものがありますrelated topics here on Stack Overflow


phpassは’ sがサポートされている場合フグを使用して、そしてそれ’がないよ場合は他のアルゴリズムにフォールバック、すべてのシステム上で動作する優れた、使いやすいパスワードハッシュのフレームワークです。

4

このようにパスワードを暗号化するためにブローフィッシュを使用する必要はありません。登録フォームは、HTTPS経由でなければなりません。これは、攻撃者に対する防御をワイヤで処理します。パスワード自体はハッシュする必要があります(は暗号化されません)。 bcryptは、ブローフィッシュに基づいた優れたパスワードハッシュ関数です。しかし、SOに安全なパスワード記憶に関連したたくさんの投稿があります。

+1

+1おそらくHTTPSについて言及していたはずです。 – Herbert

+0

[Heartbleed脆弱性](http://heartbleed.com/)の後、私は何も完全に安全だとは思わない。 – ontananza

関連する問題