我目前正在更新一个网站,以便通过HashBytes SHA2_512 SALT组合密码进行身份验证。
我的问题是,一旦我执行此操作,所有当前用户将无法再使用现有的HashBytes SHA2_512密码登录。
有没有办法通过SQL解密(更新)当前的HashBytes SHA2_512密码和HashBytes SHA2_512 SALT组合密码。
这是我选择验证的一个例子。
//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进行更新。
我不确定是否可以这样做,唯一的解决方法是通过电子邮件发送给我的用户并要求他们从网站申请新密码?
感谢。
答案 0 :(得分:1)
没有办法解密"哈希密码。如果密码是否使用盐加密,为什么不在存储的位置添加列(位)。
然后它只是另一个条件:
AND ((isSalted = false
AND strUserPassword =HashBytes('SHA2_512', 'Rice205H*!'))
or [AccountPwd] =HashBytes('SHA2_512', [Salt] + 'Rice205H*!'))