背景:对SHA512进行加密(4)(= 4次迭代),或者每个密码都有独特的salt加密?
我想登录添加到我的小网站,这是一个在线的PHP应用程序,我想建立能够承受多大的用户活动的未来。
在我进一步研究实现LightOpenID之前,我想添加一个正常的登录。我从中学习的这本书被称为MySQL(2008),并且本章的最终代码使用SHA('$user_password')
作为mysql查询的一部分。
当我对杰夫·阿特伍德的写作感兴趣时,我非常了解bcrypt和scrypt。但是由于没有php的scrypt实现,没有专门的服务器来运行它,所以我决定至少考虑实现bcrypt。
但是我并不完全天真,我知道我应该小心不要过度伸展我非常谦虚的托管资源。 PHP应用程序本身应该始终首先放在关于资源的其他任何东西之前
Andrew Moore's method看上去不错(虽然我得看看如何实现它在PHP 5.2.17这我的主机使用),并带有硬件速度的提示:
你应该选择一个数字的轮次,结果在200-250毫秒的 工作。 bcrypt安全的原因之一在于速度很慢。你必须确保有一些回合保持这一特征。 - 安德鲁·摩尔
另一位用户指出,他跑microtime()
给出了0.314的Bcrypt(9),这从而将接近最优。
问题:
视为我只在我手上有很不起眼的资源,我想做出最好的人,剩下的大部分为PHP应用程序本身,我还在更好使用Bcrypt(4)而不是别的东西?
Bcrypt(4)返回true几乎是瞬间,但它仍然保持这一特性穆尔谈?(请问这是关于部分RAM,使得它更难GPU暴力破解?)还是会SHA512 或别的东西实际上在这一点上一样快但更安全?
我希望Bcrypt(4)在这种情况下获胜,但是我知道对不对? :p
5.2是古老的。要么喊叫,要么替换你的主人。 – 2012-07-28 20:32:50
这是一个非常体面的主机,否则,虽然令人惊讶的便宜,我认为这是一个虚拟专用服务器的升级,而不是完全改变主机,问题。这是功能的东西。 – Suzy 2012-07-28 20:43:03