1

我目前正在更新一个网站以使用 HashBytes SHA2_512 SALT 组合密码进行身份验证。

我的问题是,一旦我这样做了,我所有的当前用户将不再能够使用他们现有的 HashBytes SHA2_512 密码登录。

有没有办法通过 SQL 使用 HashBytes SHA2_512 SALT 组合密码来解密(更新)当前的 HashBytes SHA2_512 密码。

这是我选择验证的示例。

//current which will no longer work once i have updated the page 

SELECT intcustomerid, strUserName, strUserPassword
FROM dbo.tblLoginControl WHERE strUserName = 'Dave' AND strUserPassword =HashBytes('SHA2_512', 'Rice205H*!')


//new one once I have update the page

SELECT [AccountName], [AccountPwd]
FROM [dbo].[SecurityAccounts] WHERE [AccountName]= 'Dave' AND [AccountPwd] =HashBytes('SHA2_512',  [Salt] +  'Rice205H*!')

所以我需要使用现有的密码并使用 Salt 进行更新。

我不确定这是否可以做到,唯一的解决方法是向我的用户发送电子邮件并要求他们从网站请求新密码?

谢谢。

4

1 回答 1

1

没有办法“解密”散列密码。如果密码是否用盐加密,为什么不添加一个列(位)来存储。

然后它只是另一个条件,如:

AND ((isSalted = false 
      AND strUserPassword =HashBytes('SHA2_512', 'Rice205H*!'))
    or [AccountPwd] =HashBytes('SHA2_512',  [Salt] +  'Rice205H*!'))
于 2016-05-21T17:58:26.940 回答