【问题标题】:How to insert md5 hash value in MS sql server?如何在 MS sql server 中插入 md5 哈希值?
【发布时间】:2012-03-09 07:14:49
【问题描述】:

我有表用户,其中有密码字段。在这里我想直接从数据库中输入 md5 哈希值,因为我还没有准备注册应用程序。列是否有任何功能或属性。我搜索该选项,但在 sql server 数据库中找不到任何选项,我在 php 中使用 md5 函数来选择用户表的密码

【问题讨论】:

  • 您可能会shouldn't use MD5 来保护您的密码。
  • 请注意:您说的是散列,而不是加密。另外,你的问题是什么?您正在尝试自动散列插入而无需更改代码?只需在数据库中更新一次,然后更改代码。
  • SQL Server 不提供您可能期望从 MySQL 获得的 MD5 或 SHA1 函数,如果这正是您所追求的。

标签: php sql-server encryption md5


【解决方案1】:

使用哈希字节:http://msdn.microsoft.com/en-us/library/ms174415.aspx

SELECT
    HashBytes('MD5', '123456') AS md5hash

【讨论】:

    【解决方案2】:

    这是否意味着您的数据库中的密码根本没有经过哈希处理?

    我知道这不是您要寻找的答案,但是:

    1. MD5 是用于密码的错误哈希值。它太快了。您需要使用hashing algorithm,这需要更多时间。
    2. Salt

    或者更好的是,使用经过验证的库为您处理它。

    【讨论】:

      【解决方案3】:

      就我而言,我是这样做的:

       Select Lower(CONVERT(VARCHAR(32),HashBytes('MD5', '12345'), 2))
      

      【讨论】:

        【解决方案4】:

        试试这个

        <?php 
         $encryptedstring = mdecrypt_generic($yourdata)
         $encryptedstring // insert this value in database
         ?>
        

        祝你好运:)

        【讨论】:

          【解决方案5】:

          您可以在 php 中创建一个带有更新查询的小脚本。

             select users.....;
                   for loop
                       md5 pass + update users
                   end for
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-09-18
            • 2016-06-24
            • 1970-01-01
            • 2018-02-13
            • 1970-01-01
            • 2011-11-22
            相关资源
            最近更新 更多