Неверный пароль с использованием php pass_hash(), pass_verify()Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Неверный пароль с использованием php pass_hash(), pass_verify()

Сообщение Anonymous »

Это проект Codeigniter 3.
Сначала я сохраняю пароль при создании пользователей, используя:

Код: Выделить всё

$options = ['cost' => 10];
password_hash($data['password'], PASSWORD_DEFAULT, $options)
Это работает хорошо в течение нескольких дней, а затем внезапно, когда я вхожу в систему, он показывает

неправильный пароль

Код: Выделить всё

public function login() {
$email = trim($this->input->post('email'));
$password = trim($this->input->post('password'));

log_message('info', 'Login attempt with email: ' . $email);

$user = $this->db->get_where('users', ['email' => $email])->row();

if ($user) {
log_message('info', 'User found: ' . json_encode($user));

if (password_verify($password, $user->password)) {
// Check if rehash is needed and update the password hash if required
if (password_needs_rehash($user->password, PASSWORD_DEFAULT, ['cost' => 10])) {
$newHash = password_hash($password, PASSWORD_DEFAULT, ['cost' => 10]);

// Logging hash update
log_message('info', 'Rehashing password for user: ' . $email);

// Update database with the new hash
$this->db->update('users', ['password' => $newHash], ['email' => $user->email]);
}

// Session setup and role-based redirection (as in your code)
// ...
} else {
log_message('error', 'Password verification failed for email: ' . $email);
$this->session->set_flashdata('error', 'Incorrect password provided. Please try again.');
redirect(base_url());
}
} else {
log_message('error', 'Email not found: ' . $email);
$this->session->set_flashdata('error', 'Email not found. Please try again.');
redirect(base_url());
}
}
Впервые я ввел каждый пароль вручную с помощью онлайн-инструмента хеширования, затем добавил несколько пользователей, и все идет хорошо, затем через день при каждом входе в систему отображается неправильный пароль, который я не менял любая кодировка И мой столбец пароля — varchar(255).
Я использую Hostinger для размещения этого программного обеспечения, хочу ли я что-нибудь в нем изменить?Есть ли какой-нибудь способ отладки, чтобы найти это?
Каково решение этой проблемы? Или, если у вас есть другой стабильный хэш-код пароля, пожалуйста, помогите мне.

Подробнее здесь: https://stackoverflow.com/questions/791 ... ord-verify
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»