2012-04-22 14 views
1

私はクライアントのサイトを実行するCMSシステムを開発中ですが、回避しようとした状況に遭遇しました。 hash()関数はPHP> = 5.1.2を必要とします。私はすべてのホスティングを処理しないので、すべてのクライアントがこれを実行するとは思いません。ハッシュメソッドの欠如(異なるPHPバージョン - 同じコード)の扱い

したがって、私は間で選択しています:のみSHA1にこだわっ

  1. - レスセキュリティ利用可能SHA512を使用して
  2. 、そうでない場合はSHA1 - 悪いcompabilityを、それがSHA512を使用して、サーバーのアップグレード
  3. のための時間だとき クライアントができるだけ早くアップグレードするように強制する(悪い - は常に可能)

すべての入力をいただきありがとうございます。

+0

バージョン5.1.2は本当に古いです(より正確には6年です)。古いバージョンで動作しているホスティングプロバイダがまだ存在する場合、おそらくそれほど競争が激しくないため、クライアントはこれを避けることになります。しかも、バージョンアップはしばらくして良いですが、毎年古いものを扱うことはできません。 –

+0

あなたがパスワードハッシュについて話しているなら、SHA-1の弱点は無関係です。正しく使用すること(つまり、ユーザーごとの塩分と十分な反復回数)ははるかに重要です。 – CodesInChaos

+0

@CodesInChaos非常に真実。私の解決策は、両方のポイントを提供するBcryptを使用することでした。 – Zar

答えて

2

の主なブラウザは、ハッシュ()関数はPHP> = 5.1.2が必要ですし、私は明らかに、すべてのクライアントが実行していると仮定することはできませんこれは私がホスティングしているすべての人を扱わないからです。

本当に!

  • PHP 5.2は2009年6月
  • PHP 5.4は数週間のために出ているので、2006年11月
  • PHP 5.3が出ていることから、今
  • PHP < 5.1.2手段を実行

出て、それそれ6歳以上であり、安全保障上の問題です。ハッシュアルゴリズムが多かれ少なかれ安全であるという問題はもはや重要ではない。

質問について:sha1()(塩入り)は、CIAなどのソフトウェアを書かない限り、ほとんどの使用例で問題なく動作します。要点は、塩でさえもmd5() - ハッシュはほとんどのサイトでクラックする価値はないということです。 (悪い - ではない、常に彼らができる)できるだけ早くアップグレードするクライアントを強制的に - 彼らは6歳のソフトウェアを更新するために拒否した場合、彼らはとにかく運命にある

...

のみSHA512を使用して

+0

なぜ私がこれに返信しなかったかわからない、あなたのポイントは非常に有効です。あなたの答えをありがとう、私はmin-php-versionを上げ、代わりにBcryptを使うことにしました。 – Zar

1

PHP 5.1.2はreleased in '06でした。 これは、CMSを実行するための要件として安全に設定できます。あなたのクライアントの1人がPHPの6歳のバージョンを使用している場合 - 彼はあなたのシステムとの不一致よりもはるかに悪い問題を抱えています。 はちょうどあなたのCMSは、IE6のウィッヒでうまく表示されませんよう、2006年

+0

非常に有効なポイントです。 – Zar

関連する問題