3

在 MySQL函数文档PASSWORD

MySQL Server 中的身份验证系统使用 PASSWORD() 函数;您不应该在自己的应用程序中使用它。为此,请考虑使用 MD5() 或 SHA1()。

为什么我们不应该在我们的应用程序中使用这个函数?

4

1 回答 1

2

我能想到的几个原因

  1. 这是一个快速散列(我相信是 SHA1),它不是密码散列的好属性。

  2. 他们可能会更改它在未来版本的 MySQL 中使用的哈希值,从而破坏您的应用程序。他们已经这样做了一次,因此使用了 OLD_PASSWORD() 函数。

  3. 它自然不会使用盐(尽管如果您想在调用 PASSWORD 函数之前将其附加到密码中,您可以使用盐)

  4. 它是非标准 SQL,因此如果您需要将应用程序移植到另一个平台,您需要找到一个替代品

于 2013-07-18T19:14:24.097 回答