【问题标题】:What is the MSSQL equivalent of MySQL's password function?MySQL 的密码功能的 MSSQL 等价物是什么?
【发布时间】:2015-05-14 09:03:53
【问题描述】:

在MSSQL Server 中与MYSQL 的PASSWORD() 函数等效的函数是什么?我必须将 MySQL 查询迁移到 MSSQL Server。

以下是我的源代码的示例查询:-

Select * from users where username = 'demo' and pasword = PASSWORD('demo');

此功能用于创建用户帐户创建以及身份验证。

【问题讨论】:

  • 你是如何使用它的?请举个例子。
  • PASSWORD() 函数用于创建数据库凭据?
  • 是的,用于帐户创建和身份验证。我已经更新了我的问题

标签: mysql sql-server function passwords alternate


【解决方案1】:

其实 MySql 的函数 PASSWORD() 不应该被用来散列密码。来自MySqldocu

PASSWORD() 被 MySQL Server 中的认证系统使用;你 不应在您自己的应用程序中使用它。

问题在于,它使用了无盐且快速的散列算法。这不会为您提供太多保护,而是使用具有成本因素的哈希算法,例如 BCrypt SCrypt 或 PBKDF2。 MySql 不提供这样的算法,所以你应该在你的开发语言中计算哈希。

我强烈建议切换到更安全的算法,为了向后兼容,您可以查看“定义”答案,他尝试实现 MySql 行为:

MySQL Hashing Function Implementation

【讨论】:

  • 这是一个现有的客户端应用程序,我无法对其进行任何更改。我知道这是用于密码加密的好方法。购买我的问题是我必须将 MySQL 查询转换为 MSSQL。在这方面有什么帮助吗?
  • @deltaforce - 然后看看链接的例子,它可能只是一种双哈希sha1(sha1(password)),也许HASHBYTES 函数可能会有所帮助。如果必须为 MSSql 构建这样一个不安全的函数,真的很痛苦。
  • @deltaforce - 如果它真的是一个简单的无盐双哈希,它甚至可以被oclHashcat 等破解工具提供开箱即用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-04
  • 2010-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-23
  • 2010-12-27
相关资源
最近更新 更多