如何解决SQL HASHBYTES('SHA2_512', @password) 到 C# 比较
我正在尝试验证在 Windows 窗体中输入的密码。 SQL 表字段是 PasswordHash(二进制(64),不为空。我通过 EF6 检索它并获得一个字节 []。我如何将值作为字符串或字节 [] 进行比较?这是我的代码得到了。
''' private void loginButton_Click(object sender,EventArgs e) {
User login = new User();
if (txtLoginName.Text != string.Empty || txtPassword.Text != string.Empty)
{
login = _user.GetUserByLoginName(txtLoginName.Text);
if (login != null)
{
bool loginSuccess = SQLSHA2_512CompareLoginFormValue(txtPassword.Text,login.PasswordHash);
if (loginSuccess)
{
var fOrder = new OrderDashboard();
fOrder.Show();
this.Hide();
}
else
{
MessageBox.Show("Login in failed.","information",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
}
else
{
MessageBox.Show("Information missing in login attempt.",MessageBoxIcon.Information);
}
}
}
public bool SQLSHA2_512CompareLoginFormValue(string password,byte[] encodedPassword)
{
string sqlPassword = HashBytes(encodedPassword);
bool result = false;
string convertedPassword = sqlPassword.TrimEnd('0');
if (convertedPassword == password)
{
result = true;
}
return result;
}
public string HashBytes(byte[] encodedPassword)
{
var hasher = System.Security.Cryptography.SHA512.Create();
byte[] hashBytes = hasher.ComputeHash(encodedPassword);
string hash = Convert.ToBase64String(hashBytes);
hasher.Clear();
return hash;
}'''
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。