2012-04-22 54 views
1

我正在开发一个CMS系统,它将运行我的客户站点的过程中,但我遇到了一个我试图避免的情况。 hash()函数需要PHP> = 5.1.2,我显然不能认为所有的客户端都运行这个,因为我不会处理所有托管的东西。处理缺乏哈希方法(不同的PHP版本 - 相同的代码)

因此,我之间进行选择:

  1. 只有SHA1坚持 - 少保
  2. 使用SHA512时可用,否则SHA1 - 坏保持兼容时 它的时候,服务器升级
  3. 使用SHA512只是 - 迫使客户尽快升级(坏 - 不是 总是他们可以)

我很欣赏所有输入!

+0

版本5.1.2真的很老(6年更精确)。如果仍然有托管服务提供商在使用旧版本,那么它们可能不是很有竞争力,因此客户会避开它们。此外,一次版本升级很好,我们不能只是一年比一年地继续旧的东西。 – 2012-04-22 12:07:51

+0

如果你正在谈论密码哈希,那么SHA-1的弱点是无关紧要的。正确使用它要重要得多(即每用户盐和足够的迭代)。 – CodesInChaos 2013-02-08 12:48:44

+0

@CodesInChaos非常真实。我的解决方案是使用Bcrypt,它应该提供你的观点。 – Zar 2013-02-08 15:36:11

回答

2

哈希主浏览器()函数需要PHP> = 5.1.2,而我显然不能假定所有客户端上运行这个,因为我不会处理每个人的托管。

真的吗?!

  • PHP 5.2是出自从2006年11月
  • PHP 5.3是出自从2009年6月
  • PHP 5.4是出好几个星期,现在

运行PHP 5.1.2 <手段,它至少(!)6岁,因此本身就是一个安全问题。散列算法或多或少地安全的问题不再重要。

关于问题:sha1()(含盐)对于大多数使用情况都适用,除非您为CIA等编写软件。关键是,即使腌md5() -hash不值得在大多数网站上被破解。

使用SHA512只 - 强制客户端,以尽快升级(坏的 - 并不总是他们能),当他们拒绝更新6岁的软件

,他们反正注定...

+0

不知道为什么我没有回复这个,你的观点非常有效。感谢您的回答,我决定提高min-php版本,并改用Bcrypt。 – Zar 2013-02-08 15:37:59

1

PHP 5.1.2是released in '06。 您可以放心地将此作为运行CMS的要求。如果你的一个客户使用6年前的PHP版本 - 他会遇到比你的系统更加糟糕的问题。 正如你的CMS将不会在IE6至极显示以及在2006年

+0

非常有效的一点。 – Zar 2013-02-08 15:38:16

相关问题