Для входа:
$rows = $sql->fetch(PDO::FETCH_ASSOC); $us_id = $rows['id']; $us_pass = $rows['password']; $us_salt = $rows['password_salt']; $status = $rows['attempt']; $saltedPass = hash('sha256', "{$password}{$this->passwordSalt}{$us_salt}");
Для регистрации:
$randomSalt = $this->rand_string(20); $saltedPass = hash('sha256', "{$password}{$this->passwordSalt}{$randomSalt}");
Как этот метод шифрования sha256 можно преобразовать в bcrypt?
Хеширование паролей с помощью bcrypt
Если вы используете PHP 5.5 или новее, вы можете использовать встроенную функцию password_hash()
с параметром $algo
установленным в PASSWORD_BCRYPT
для создания хэшей bcrypt. Вы можете использовать это так:
$options = array('cost' => 11, 'salt' => 'my_salt'); $hash = password_hash("my_secret_password", PASSWORD_BCRYPT, $options);
миграция
Невозможно выполнить массовую миграцию с sha256 на bcrypt, потому что вам нужны исходные данные незашифрованного текста (пароль), которые недоступны.
Как правило, сайты выполняют ступенчатое преобразование, в котором вы конвертируете пользователей, когда они выполняют успешные логины. Например: