asp.net - 将 asp.net 应用程序转换为使用 asp.net 表单例份验证 - SQL Server 中的密码散列

标签 asp.net forms sql-server-2005 hash passwords

场景:

  • 使用 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/

相关文章:

asp.net - Excel VBA查询外部.aspx页面并检索数据

sql - 删除重复行 - 无法找到决定性的答案

sql-server-2005 - 在 T-SQL2005 中处理 10 0's of 1,000,000' 行

php - 我需要在 php 文件中将空格更改为用户信息

c# - 警报不起作用,这有什么问题

c# - .HasRequired 无法在模型中工作

asp.net - 在 ASP.NET 问题中使用 WPF DLL 程序集

php - Symfony2 形式 + 学说 - 选择的选择

asp.net - 按下Enter时提交表单