Почему bcrypt дает мне отличную стоимость?

У меня есть формуляр, который подбирает пароль моей страницы и encripta посредством bcrypt, этот формуляр берется за то, чтобы способствовать тому, чтобы пользователь, который это включает, остался бездеятельным. Для этого ищи с query, свойственным laravel, Eloquent, в базе данных. Параметр базы данных, и который он входит, они равны, типичный пустяк, уже вы знаете '123456'; проблема состоит в том, что bcrypt, который я сохраняю в базе данных, один, и что я ищу в query он другой. Почему происходит это, если я использую тот же метод?

Использованный метод этот: bcrypt($request->get('password'))

Стоимость параметра:

$2y$10$Pi1Cm7ThIFHLAmO.mE7lmuE5odgU96j5z8kryJhC0Z2rqfrcEB2oa

в методе laravel и

$2y$10$K8q0RD0VIb/7KDddroAB2eelHz3BvLADK3kJoKjtNPKsLhnlULU4K

в базе данных.

Поскольку вы видите, они различные, хотя я использую тот же encriptación.

2
задан 09.03.2018, 21:01
2 ответа

Она razГіn он, потому что она funciГіn bcrypt из Laravel в действительности работает под одним mГ©todo Hash, из-за чего каждый раз, когда ты вводишь в компьютер ту же цепь текста Hash он отличается, не импортируя, что это была та же цепь.

Используя эту funciГіn:

introducir la descripción de la imagen aquí

, Выполненный 4 раза, бросает мне следующие результаты:

  • $2y 10$ $ BR9hlUAWOtufhsX8nXwtxewjImnsbyyuy2qpPLSjKmvrho/FGy02W
  • $2y 10$ $ BEFNyTcNJeCpik8EK2WaXOtFnsARyLSpradcTTAcKFbGroqZMZECq
  • $2y 10$ $ cWeARQgfsyCjDKlFrkGUq.8xTeUDHapI3D8VLxpR1D7NkjOA4HNSC
  • $2y 10$ $ YIYW6DAEs6wX9cpO8s.7Y.sUBtUvRWSAsMbFdOTMF/Vgj2Olw2Cwq

, Чтобы мочь сравнивать, - необходим использовать Facade Hash, который поставляет тот же framework.

if (Hash::check('contraseñaSinHash', $contraseñaConHash))
{
    // Realizar operaciones si la contraseña es la misma.
}

Для mГЎs informaciГіn:

7
ответ дан 24.11.2019, 01:10

Дополняя другой ответ, которое tendrГ-эксперт, который делать состоит в том, чтобы получать сначала пользователь (из-за Вашего первичного ключа), и потом проверять Ваш contraseГ±a, чтобы позже это обновлять:

$usuario = User::find($idCliente);
$editado = false;

if ($usuario && Hash::check($request->password, $user->password)) {
    $usuario->u_activo = 0;
    $usuario->save();

    $editado = true;
}

PodrГ-Схвати делать это в revГ©s, но я верю в то, что не tendrГ - во много связности.

3
ответ дан 24.11.2019, 01:10
  • 1
    Я это сделал así спасибо. Не có mo помечаются два правильных ответов, потому что твоя я sirvió tambié n. –  Maria Rosa Cambero 09.03.2018, 21:03
  • 2
    Не могут быть помечены два ответов, обычно ты помечаешь ту, которая ты sirvió má в. –  Shaz 09.03.2018, 21:04