【问题标题】:Password hash in SQL ServerSQL Server 中的密码哈希
【发布时间】:2018-01-17 06:38:07
【问题描述】:

当用户从页面在文本框中输入内容时,我有一个带有 password_hash 的列,然后在 SQL Server 表中转换为这种形式。

比如用户输入4512,那么就转换成这样的形式:

90 119 218 156 223 147 36 245 171 86 241 32 174 66 192 226 34 75

如何使用 T-SQL 查询解密?

有什么办法吗?

【问题讨论】:

  • 您无法解密哈希(这是一种单向函数)。当然你可以尝试暴力破解。请描述您要达到的目标(比较哈希/提取原始值/...)
  • 我通过 SQL 查询从哈希中获得 4512 值
  • 如果它是真正的哈希(MD5,SHA...),你根本无法做到。
  • 有什么可能吗?我在代码上使用 Dim sha As SHA256 = New SHA256Managed()
  • 您为什么要这样做?如果原因不仅仅是破解某人的密码,那么也许您尝试解决的任何问题都可以以不同的方式解决。

标签: sql-server tsql encryption hash sql-server-2014


【解决方案1】:

你真的不能,但如果你想尝试猜测它,使用这个:

SELECT name FROM sys.sql_logins   
WHERE PWDCOMPARE('EnterPasswordHere', password_hash) = 1 ;  

它只返回具有该密码的人。

【讨论】:

    【解决方案2】:

    any possibilities ? and i am using Dim sha As SHA256.... 单向加密。您加密但无法解密。另见SO - Fundamental difference between Hashing and Encryption algorithms

    您实际上想要做的是创建输入密码的哈希并将其与存储的密码哈希进行比较,以查看它们是否相等。然后你就知道输入的密码是否与存储的密码匹配。

    【讨论】:

      猜你喜欢
      • 2011-02-19
      • 2011-02-15
      • 1970-01-01
      • 2021-11-19
      • 1970-01-01
      • 1970-01-01
      • 2010-11-25
      • 2011-10-14
      • 1970-01-01
      相关资源
      最近更新 更多