我有一个使用 SHA1 哈希作为密码的网站。我最近阅读了以下文章,该文章主张不要将 SHA1 用于密码,因为 SHA1 从未设计用于保护密码:http ://arstechnica.com/security/2012/08/passwords-under-assault/4/
您能否推荐一个我可以实现而不是 SHA1 的好方法,并请提供一个教程链接,该教程逐步描述了如何使用 php 实现该加密方法?
我有一个使用 SHA1 哈希作为密码的网站。我最近阅读了以下文章,该文章主张不要将 SHA1 用于密码,因为 SHA1 从未设计用于保护密码:http ://arstechnica.com/security/2012/08/passwords-under-assault/4/
您能否推荐一个我可以实现而不是 SHA1 的好方法,并请提供一个教程链接,该教程逐步描述了如何使用 php 实现该加密方法?
首先,SHA1 不是加密算法,它是一种散列算法。
对于密码哈希,我建议使用PHPass。它基本上使用安装代码的系统上可用的最佳哈希算法。
phpass 支持的首选(最安全)散列方法是 OpenBSD 风格的基于 Blowfish 的 bcrypt,也支持我们的公共域 crypt_blowfish 包(用于 C 应用程序),在 PHP 中称为 CRYPT_BLOWFISH,回退到 BSDI 风格的扩展基于 DES 的散列,在 PHP 中称为 CRYPT_EXT_DES,最后的手段是回退到在 phpass 本身中实现的基于 MD5 的加盐和可变迭代计数密码散列(也称为可移植散列)。
bcrypt
或者scrypt
,但是,没有真正的 scrypt for php 实现。这篇文章值得一读,应该为您提供所需的所有信息:http ://www.zimuel.it/en/strong-cryptography-in-php/