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 年了,因此本身就是一个安全问题。哪种哈希算法或多或少安全的问题不再重要。

Regarding the question: sha1() (with salt) works fine for most use-cases, unless you write software for the CIA or such. The point is, that even salted md5()-hash isn't worth to get cracked on most sites.

Using SHA512 only - forcing the client to upgrade ASAP (bad - not always they can)

When they deny to update a 6 years old software, they are doomed anyway...

于 2012-04-22T12:09:05.590 回答
1

PHP 5.1.2于 06 年发布。您可以放心地将其作为运行 CMS 的要求。如果您的一位客户使用 6 年的 PHP 版本 - 他会遇到比不兼容您的系统更糟糕的问题。就像您的 CMS 在 2006 年的主要浏览器 IE6 中无法很好地显示一样。

于 2012-04-22T12:08:52.677 回答