3

使用 MySQL 的密码功能在数据库中存储密码是否一样糟糕?

http://money.cnn.com/2012/06/06/technology/linkedin-password-hack/?source=linkedin

SHA-1 的问题在于它每次都以相同的方式翻译相同的文本。因此,如果您的密码是“password”,而您朋友的密码也是“password”,那么它们将以完全相同的方式进行哈希处理。这使得逆向发现原始密码的过程变得更加容易。

我知道它说的是 SHA-1,但显然任何未加盐的单向哈希都会有同样的问题。

4

2 回答 2

3

使用 MySQL 的密码功能在数据库中存储密码是否一样糟糕?

是的。

一般来说,您希望使用一种包含盐的方法,最好对每个用户都是唯一的,并且运行缓慢以防止暴力破解。Bcrypt是目前推荐的存储密码的方法,因为它故意(相对)创建缓慢。

于 2012-06-07T16:21:14.033 回答
2

MySQL文档说您不应该在自己的应用程序中使用 PASSWORD() 函数:

MySQL Server 中的身份验证系统使用 PASSWORD() 函数;您不应该在自己的应用程序中使用它。

在内部,MySQL 的 PASSWORD() 函数使用 SHA1(2),即 SHA1 的两倍。但是,它不使用盐。所以,是的,它仍然容易受到彩虹表攻击。

于 2012-06-07T17:09:48.500 回答