gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 04:55:16 26 4
gpt4 key购买 nike

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

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 保存 到数据库中,不要保存明文密码。

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

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

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

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

关于c# - 如何加密密码并将其保存在 MySQL 数据库中。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7109776/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com