如何加密密码(asp.net c#)
本文关键字:asp net 密码 加密 何加密 | 更新日期: 2023-09-27 18:20:45
我在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[]或类似的东西。如前所述,我正在考虑将其放入字符串中,然后将其放入数据库中。有人有什么想法吗?我可能做错了什么,但不太清楚是什么。
您可以使用base64编码将byte[]
转换为string
。
string encodedString = System.Convert.ToBase64String(myBytes);
或者,您可能希望使用BLOB或其他类似的数据类型(例如BINARY或VARBINARY)更直接地将字节存储在DB中。(我对SQL Server的数据类型不太熟悉,所以我不能准确地推荐使用哪种类型。)