Как зашифровать пароль и сохранить его в базе данных MySQL. - PullRequest
1 голос
/ 18 августа 2011

Теперь я просто сохраняю пароль таким, какой он есть

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);

, и когда пользователь входит на веб-сайт, как зашифрованный пароль используется для аутентификации.я хочу сделать расшифровку на стороне самого сервера.пожалуйста помогите

Ответы [ 2 ]

4 голосов
/ 18 августа 2011

Как правило, hash + salt ваш пароль, сохраните хэш в базе данных, не сохраняйте открытый текстовый пароль.

Когда пользователь входит в вашу систему, хэширует тот же пароль от него и соли, сравните этот хеш с хешем, сохраненным в вашей базе данных, если они совпадают, тогда ваш пользователь аутентифицирован.

Hashing ваш пароль скрывает реальный пароль от любых успешных попыток взлома вашего пароля.

Salting ваш пароль с другим произвольным значением экономит ваше преимущество от атак методом перебора на основе словаря.

См. OWASP для Salt + Hashing + High number of iterations техника Это на Java, но я полагаю, что охватываемая теория переносима на любые языки / реализации.

0 голосов
/ 18 августа 2011

Во-первых, вы должны солить и хэш ваши пароли. Когда вы говорите, что хотите сделать это на стороне сервера, вы имеете в виду на стороне сервера базы данных или сервера приложений?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...