场景:
- 使用SQL Server 2005的旧ASP.NET 2.0应用程序
- 密码以纯文本形式存储在数据库中
- 我们希望升级应用程序以使用表单身份验证
- 需要像表单身份验证一样重新创建所有密码
问题:
- 我们如何使用T-SQL生成哈希密码(带salts)以存储在数据库中,该密码将与表单身份验证生成的密码相同:
那么如何创建这个:
DHSicgbY+Av0LyQpBZl2M5EuyOk=
哪个是散列密码(加上salt),但使用T-SQL?
在SQL Server 2005下,使用HASHBYTES(),最好使用SHA1哈希算法。(SQL Server 2012现在支持SHA-256和SHA-512)
可以使用NEWID()
为盐生成随机GUID。
返回其输入的MD2、MD4、MD5、SHA或SHA1哈希。
正如@von v.所指出的:T-SQL:Salted Passwords