Sql server 2008 在T-SQL中将普通密码转换为.NET成员身份哈希密码

Sql server 2008 在T-SQL中将普通密码转换为.NET成员身份哈希密码,sql-server-2008,tsql,hash,asp.net-membership,password-encryption,Sql Server 2008,Tsql,Hash,Asp.net Membership,Password Encryption,我们有一个将用户名/密码存储为纯文本的系统。我被要求把这个秘密告诉会员 我想要一个SQL函数将纯文本密码转换为.NET成员身份哈希密码。我发现的唯一一个HashBytes函数甚至与我在.NET成员资格表中看到的不太接近 我绝望了。请提供帮助。我了解到在T-SQL中无法生成相同的哈希算法,最好的方法是简单地将基本表读取到ASP.net端,然后调用成员脚本来插入用户。这也减少了时间 DataSet dtData = DivDatabase.ExecuteSQLString("SELECT * FRO

我们有一个将用户名/密码存储为纯文本的系统。我被要求把这个秘密告诉会员

我想要一个SQL函数将纯文本密码转换为.NET成员身份哈希密码。我发现的唯一一个HashBytes函数甚至与我在.NET成员资格表中看到的不太接近


我绝望了。请提供帮助。

我了解到在T-SQL中无法生成相同的哈希算法,最好的方法是简单地将基本表读取到ASP.net端,然后调用成员脚本来插入用户。这也减少了时间

DataSet dtData = DivDatabase.ExecuteSQLString("SELECT * FROM Users");   

foreach (DataRow row in dtData.Tables[0].Rows)
{
    MembershipUser mUser = null;
    mUser = Membership.GetUser(row["Username"].ToString());
    if (mUser == null)
    {
        mUser = Membership.CreateUser(row["Username"].ToString(), row["Password"].ToString(), row["Email"].ToString() );
    }
}
我首先检查用户名是否不在系统中。这是因为我有重复的用户名,我想消除这一点。对于旧表中不存在于成员资格表中的其他信息,我们同意高级管理层的意见,即我们不会使用成员资格配置文件,因为针对该配置文件编写查询并不容易。但我添加了示例代码以供参考

var profile = System.Web.Profile.ProfileBase.Create(row["Username"].ToString());
profile.SetPropertyValue("FirstName", row["FirstName"].ToString());
profile.SetPropertyValue("LastName", row["LastName"].ToString());
profile.Save();

我希望您觉得这很有用。

您应该使用.net来完成此操作。可能会重复