【问题标题】:How to encrypt a password and save it in MySQL database.如何加密密码并将其保存在 MySQL 数据库中。
【发布时间】:2011-10-29 21:37:45
【问题描述】:

现在我只是按原样保存密码

protected void Save_Click(object sender, EventArgs e)
    {

        string userName = Label13.Text;
        DateTime now = DateTime.Now;
        MySqlConnection connectionString = new MySqlConnection("Server=127.0.0.1;Database=surelyknown;Uid=root");
        connectionString.Open();
        MySqlDataAdapter adapter = new MySqlDataAdapter();
        MySqlCommand command = new MySqlCommand();
adapter.InsertCommand = new MySqlCommand("INSERT INTO tbl_user (FirstName,LastName,Email,U_Password,CompanyName,UserPermission,PhoneNumber,Created,Modified,Active,CreatedBy,tbl_organisation_OrganisationID) VALUES(@FirstName,@LastName,@Email,@U_Password,@CompanyName,@UserPermission,@PhoneNumber,@Created,@Modified,@Active,@CreatedBy,@tbl_organisation_OrganisationID)", connectionString);
    adapter.InsertCommand.Parameters.Add("@FirstName", MySqlDbType.VarChar).Value = FirstName.Text;
            adapter.InsertCommand.Parameters.Add("@LastName", MySqlDbType.VarChar).Value = Surname.Text;
            adapter.InsertCommand.Parameters.Add("@Email", MySqlDbType.VarChar).Value = Email.Text;
            adapter.InsertCommand.Parameters.Add("@U_Password", MySqlDbType.VarChar).Value = Password.Text;
            adapter.InsertCommand.Parameters.Add("@CompanyName", MySqlDbType.VarChar).Value = Convert.ToString(nID);

当用户登录网站时,如何使用加密密码进行身份验证。我想在服务器端本身进行解密。请帮忙

【问题讨论】:

    标签: c# asp.net mysql authentication encryption


    【解决方案1】:

    基本上hash + salt你的密码,保存哈希到数据库,不要保存明文密码。

    当用户登录你的系统时,用盐对他的相同密码进行哈希处理,将该哈希值与保存到数据库中的哈希值进行比较,如果它们匹配,那么你的用户就通过了身份验证。

    Hashing 您的密码隐藏真实密码,防止任何成功尝试破解您的密码。

    Salting 使用另一个任意值的密码可以为您节省基于字典的暴力攻击的余地。

    See OWASP for Salt + Hashing + High number of iterations technique 这是在 Java 中,但我相信所涵盖的理论可以跨任何语言/实现移植。

    【讨论】:

    • 盐怎么样?在哪里储存盐?应用程序内部的静态?在数据库上?在属性文件上?
    【解决方案2】:

    首先,您应该salt and hash 您的密码。当您说要在服务器端执行此操作时,您是指在数据库服务器端还是应用程序服务器?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-20
      • 1970-01-01
      • 2016-12-25
      • 2011-07-15
      • 2011-12-15
      • 2016-04-22
      • 2011-04-26
      • 2012-08-11
      相关资源
      最近更新 更多