【问题标题】:How to get salt from MySql database using Asp.net?如何使用 Asp.net 从 MySql 数据库中获取盐?
【发布时间】:2017-09-20 08:44:26
【问题描述】:

如何使用 Asp.Net 从 MySql 数据库中检索盐?

我想使用检索到的盐添加到用户输入的密码中以生成 SHA256 哈希,然后对用户进行身份验证。

这是我试图获取盐的方法:

String userNameEntered = UserN_TextBox.Text;
String passwordEntered = Password_TextBox.Text;
String connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
connection = new MySqlConnection(connectionString);
connection.Open();
MessageBox.Show("Successfully connected to database");
String queryString = "select salt from xyz.abc_table where salt = @Salt";
command = new MySqlCommand(queryString, connection);
command.Parameters.AddWithValue("@Salt", queryString);
reader = command.ExecuteReader();
Response.Write("Salt retrived is" + reader);
reader.Close();
connection.Close();

当我执行这段代码时,它返回的是 MySql 数据阅读器库而不是数据库中的盐......

提前谢谢... :)

【问题讨论】:

  • 您可以添加对您的问题的描述吗?您已经描述了您想要做什么,您已经展示了一些代码 --- 但问题出在哪里?
  • 我已经更新了这个问题。如果您知道任何事情,请告诉我。谢谢...!!!
  • 不要只使用reader,使用reader["salt"].ToString()。
  • 请尝试使用调试器。我只能猜测,但你为什么将@Salt 参数设置为等于你的sql 查询? command.Parameters.AddWithValue("@Salt", queryString) - 可能没有盐值与您的 sql 查询匹配。

标签: mysql asp.net forms-authentication sha256 saltedhash


【解决方案1】:

在这里我解决了我的问题。这是问题的解决方案。它可能对某人有帮助:

try
        {

            String connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
            connection = new MySqlConnection(connectionString);
            connection.Open();
            MessageBox.Show("Successfully connected to database");
            String queryString = "select salt from xyz.abc_table where email_address = @E_Address";
            command = new MySqlCommand(queryString, connection);
            command.Parameters.AddWithValue("@E_Address", UserN_TextBox.Text);
            reader = command.ExecuteReader();
            if (reader.Read())
            {
                Response.Write("Retrived Salt is " + reader["salt"]);
                reader.Close();
                connection.Close();
            }

        }
        catch (Exception ex)
        {
            MessageBox.Show("Failed due to" +ex);
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-25
    • 1970-01-01
    • 2017-02-06
    • 2017-02-12
    相关资源
    最近更新 更多