1

クライアント サイトを実行する CMS システムを開発中ですが、避けようとした状況に陥りました。このhash()関数には PHP >= 5.1.2 が必要です。すべてのクライアントのホスティングを処理するわけではないため、すべてのクライアントがこれを実行するとは想定できません。

したがって、私は次のいずれかを選択しています。

  1. SHA1 のみを使用する - セキュリティが低い
  2. 利用可能な場合は SHA512 を使用し、それ以外の場合は SHA1 - サーバーのアップグレード時に互換性が悪い
  3. SHA512 のみを使用 - クライアントにできるだけ早くアップグレードを強制する (悪い - 常にアップグレードできるとは限らない)

私はすべての入力に感謝しています!

4

2 に答える 2

2

hash() 関数には PHP >= 5.1.2 が必要です。すべてのクライアントがこれを実行するとは想定できません。

本当?!

  • PHP 5.2 は 2006 年 11 月からリリースされています
  • PHP 5.3 は 2009 年 6 月からリリースされています
  • PHP 5.4 がリリースされてから数週間が経ちました

PHP < 5.1.2 を実行しているということは、少なくとも (!) 6 年前のものであり、それ自体がセキュリティ上の問題であることを意味します。どのハッシュ アルゴリズムが多かれ少なかれ安全であるかという問題は、もはや重要ではありません。

質問に関して:(sha1()ソルトを使用)は、CIAなどのソフトウェアを作成しない限り、ほとんどのユースケースで正常に機能します。要点は、ほとんどのサイトでソルトされた -hash でさえ md5()クラックされる価値がないということです。

SHA512 のみを使用 - クライアントにできるだけ早くアップグレードを強制する (悪い - 常にアップグレードできるとは限らない)

彼らが 6 年前のソフトウェアの更新を拒否した場合、いずれにせよ運命づけられます...

于 2012-04-22T12:09:05.590 に答える
1

PHP 5.1.2 は'06 年にリリースされました。これは、CMS を実行するための要件として安全に設定できます。クライアントの 1 人が 6 年前のバージョンの PHP を使用している場合、システムに準拠していないことよりもはるかに悪い問題を抱えていることになります。CMS が、2006 年のメイン ブラウザであった IE6 でうまく表示されないのと同じように。

于 2012-04-22T12:08:52.677 に答える