C# 如何加密密码并将其保存在MySQL数据库中。

C# 如何加密密码并将其保存在MySQL数据库中。,c#,asp.net,mysql,authentication,encryption,C#,Asp.net,Mysql,Authentication,Encryption,现在,我只是保存密码,因为它是 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=surely

现在,我只是保存密码,因为它是

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);
而当用户登录到该网站时,如何能用加密密码做身份验证。我想在服务器端本身进行解密。请帮助

基本上,hash+salt您的密码,将hash保存到数据库中,不要保存明文密码

当用户登录到您的系统时,使用salt对来自他的相同密码进行哈希,将该哈希与保存到数据库中的哈希进行比较,如果匹配,则您的用户已通过身份验证

对密码进行哈希运算会隐藏真实密码,以防任何成功的密码入侵

使用另一个任意值添加密码可以避免基于字典的暴力攻击

这是用Java编写的,但我相信所涵盖的理论可以跨任何语言/实现移植。

基本上,哈希+盐密码,将哈希保存到数据库中,而不保存明文密码

当用户登录到您的系统时,使用salt对来自他的相同密码进行哈希,将该哈希与保存到数据库中的哈希进行比较,如果匹配,则您的用户已通过身份验证

对密码进行哈希运算会隐藏真实密码,以防任何成功的密码入侵

使用另一个任意值添加密码可以避免基于字典的暴力攻击


这是用Java编写的,但我相信所涵盖的理论可以跨任何语言/实现移植。

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

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

salt如何?盐放在哪里?应用程序内部的静态?在数据库上?在财产档案上?盐呢?盐放在哪里?应用程序内部的静态?在数据库上?在属性文件上?