【问题标题】:SimpleMember User Account Creation with T-SQL - How are the passwords hashed?使用 T-SQL 创建 SimpleMember 用户帐户 - 如何对密码进行哈希处理?
【发布时间】:2013-01-21 21:48:11
【问题描述】:

可以从 SQL Server Management Studio 创建简单会员用户帐户吗?

在运行应用程序时,我发现的创建用户/帐户的唯一方法是在 C# 中:

WebSecurity.CreateUserAndAccount("userName", "password",
                        new
                        {
                            ...
                        }, false);

有没有什么方法可以生成一个散列密码,可以用 t-SQL 在简单成员中使用?简单会员哈希密码的要求是否已知?我找到了使用 DefaultMembershipProvider 生成密码的其他方法,但密码与 Simple Membership 不兼容。

编辑: 我希望找到一个类似的过程:

declare @salt nvarchar(128)
declare @password varbinary(256)
declare @input varbinary(512)
declare @hash varchar(64)

-- Change these values (@salt should be Base64 encoded)
set @salt = N'eyhKDP858wdrYHbBmFoQ6DXzFE1FB+RDP4ULrpoZXt6f'
set @password = convert(varbinary(256),N'mypassword')

set @input = hashbytes('sha1',cast('' as  xml).value('xs:base64Binary(sql:variable(''@salt''))','varbinary(256)') + @password)
set @hash = cast('' as xml).value('xs:base64Binary(xs:hexBinary(sql:variable(''@input'')))','varchar(64)')

可用于简单会员。

【问题讨论】:

    标签: asp.net sql-server tsql simplemembership


    【解决方案1】:

    我认为最简单的方法是创建然后导入一个简单的 .NET 程序集并在 Sql Server 中使用它。
    http://msdn.microsoft.com/en-us/library/ms189876.aspx

    会员服务使用 .NET 的系统和加密库的配置来生成单向哈希 AFAIK,因此在 t-sql 中重做同样的事情并非易事。

    【讨论】:

      猜你喜欢
      • 2021-10-01
      • 1970-01-01
      • 2012-05-06
      • 1970-01-01
      • 1970-01-01
      • 2016-09-07
      • 1970-01-01
      • 1970-01-01
      • 2020-08-17
      相关资源
      最近更新 更多