如何加密密码(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[]或类似的东西。如前所述,我正在考虑将其放入字符串中,然后将其放入数据库中。有人有什么想法吗?我可能做错了什么,但不太清楚是什么。

如何加密密码(asp.net c#)

您可以使用base64编码将byte[]转换为string

string encodedString = System.Convert.ToBase64String(myBytes);

或者,您可能希望使用BLOB或其他类似的数据类型(例如BINARY或VARBINARY)更直接地将字节存储在DB中。(我对SQL Server的数据类型不太熟悉,所以我不能准确地推荐使用哪种类型。)