场景:
- 使用 SQL Server 2005 的旧 ASP.NET 2.0 应用程序。
- 密码以纯文本形式存储在数据库中
- 我们想升级应用程序以使用表单例份验证
- 需要重新创建所有密码,就像表单例份验证一样
问题:
- 我们如何使用 T-SQL 生成散列密码(带盐)以存储在数据库中,该密码与表单例份验证生成的密码相同:
那么如何创建这个:
DHSicgbY+Av0LyQpBZl2M5EuyOk=
这是一个散列密码(加盐),但使用 T-SQL 代替?
最佳答案
在 SQL Server 2005 下,使用 HASHBYTES()最好使用 SHA1 哈希算法。 (SQL Server 2012 现在支持 SHA-256 和 SHA-512)
您可以使用 NEWID()
为您的盐生成随机 GUID。
Returns the MD2, MD4, MD5, SHA, or SHA1 hash of its input.
正如@von v. 指出的:T-SQL: Salted Passwords
关于asp.net - 将 asp.net 应用程序转换为使用 asp.net 表单例份验证 - SQL Server 中的密码散列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14992493/