我在 asp.net 中有一个网页,其中 C# 作为代码隐藏。每个用户都有一个使用 PWDENCRYPT 生成的散列密码,但我使用 SQL Server 上的文件手动执行此操作。我正在考虑拥有它,以便每个人都可以更改自己的密码。
目前我有:
SqlCommand cmd = new SqlCommand("select pwdencrypt('@MyPass')", Conn);
cmd.Parameters.AddWithValue("@MyName", txtNewPass1.Text);
string HashedPass;
try
{
Conn.Open();
HashedPass = cmd.ExecuteScalar().ToString();
//rdr = cmd.ExecuteReader();
//while (rdr.Read())
//{
// if (rdr["pwdencrypt"] != DBNull.Value) MyNewPassH = (string)rdr["pwdencrypt"];
//}
}
finally
{
if (rdr != null)
{
rdr.Close();
}
if (Conn != null)
{
Conn.Close();
}
}
这将获取我们的密码(txtNewPass1.Text)的新值,并尝试将散列密码获取到 HashedPass 字符串中。然后(在这一切之后)我们将把 HashedPass 放入数据库中,这一切都很好。
但目前,这只是返回一个 System.Byte[] - 或类似的东西。如前所述,我正在考虑将它放在一个字符串中,然后将其放入数据库中。有人有什么想法吗?我可能做错了什么,但不太清楚是什么。