2017-08-09 99 views
-1

我有一列password_hash在此时用户从页面输入文本框中的东西然后这将转换为SQL Server表中的此窗体。在SQL Server中的密码哈希

例如,如果用户输入4512,然后将其转换为这种形式:

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

如何解密这个用T-SQL查询?

任何解决方案?

+5

你不能解密散列(这是单向函数)。当然你可以尝试蛮横的。请描述你想达到什么(比较散列/提取原始值/ ...) – lad2025

+0

我实现了4512的值,我通过SQL查询提到 –

+1

如果它是真正的散列(MD5,SHA ...)将无法做到这一点。 – lad2025

回答

1

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

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

它只返回那些与密码。

1

any possibilities ? and i am using Dim sha As SHA256.... < =不,哈希的目的是提供单向加密的方式。您加密但无法解密。另请参阅SO - Fundamental difference between Hashing and Encryption algorithms

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