如何使用.Net实现BCrypt for SQL Server?

如何使用.Net实现BCrypt for SQL Server?,.net,sql-server,bcrypt,.net,Sql Server,Bcrypt,我在谷歌上搜索过,不幸的是我找不到任何我想要的答案 我已经下载了 老实说,我通常用PHP语言编码,我对.Net之类的东西一无所知。我假设您已经有了在某种用户配置文件表中存储用户哈希的模式 假设此表的格式如下: PersonID int PrimaryKey 人名nvarchar(50) PersonPasswordHash varchar(128) PersonPasswordSalt nvarchar(10) 然后在.net代码中(例如C#),在创建新用户时,可以继续执行以下操作 strin

我在谷歌上搜索过,不幸的是我找不到任何我想要的答案

我已经下载了


老实说,我通常用PHP语言编码,我对.Net之类的东西一无所知。我假设您已经有了在某种用户配置文件表中存储用户哈希的模式

假设此表的格式如下:

PersonID int PrimaryKey
人名nvarchar(50)
PersonPasswordHash varchar(128)
PersonPasswordSalt nvarchar(10)
然后在.net代码中(例如C#),在创建新用户时,可以继续执行以下操作

string passwordPlain=txtPassword.Text;//这是用户输入的密码
/*默认情况下,工作系数为10,但您可以提及4到31之间的任何内容。
但要记住,每增加一个功系数,功就会增加
两次(2个**对数轮)
*/
字符串passwordSalt=BCrypt.GenerateSalt(10);
字符串passwordHash=BCrypt.HashPassword(passwordPlain,passwordSalt);
//现在将passwordHash和passwordSalt存储在该用户的数据库中
获得上述值后,在数据库中存储适当的值

验证登录时,从数据库中检索有关
passwordHash
passwordSalt
的详细信息,您可以进行如下验证:

string originalPasswordSalt;//从数据库中检索其值
字符串originalPasswordHash;//从数据库中检索其值
字符串givenPasswordPlain=txtPassword.Text;//由用户在登录时提供
字符串givenPasswordHash=BCrypt.HashPassword(givenPasswordPlain,originalPasswordSalt);
如果(givenPasswordHash.Equals(originalPasswordHash)){//您有一个有效的用户
}else{//给定的登录名或密码无效
}

首先,我想说对不起,也许我的问题不够清楚。我想知道如何在T-SQL中使用BCrypt,您是否介意给出一些关于在T-SQL中使用BCrypt的示例?如果解决方案有用,请将其标记为答案,当您将其标记为答案时,它将为问题提供一个结束,并将您的声誉提高2分。谢谢。@user474407:您的答案与问题完全无关(因为我们可以从评论的对话中推断出来。它是在您的指示后被接受的。您应该做的是完全更新您的答案,并在TSQL中为BCrypt提供解决方案。