Параметры шифрования пароля Laravel для расшифровки кода

У меня другое требование, я не хочу расшифровывать пароль, но я создаю другое приложение на основе ЖЕ БАЗЫ ДАННЫХ для ВХОДА, так что я могу сделать, чтобы «зашифровать значение пароля, чтобы оно соответствовало зашифрованному коду внутреннего пароля» .

Я хочу предоставить ЛОГИН из приложения CODEIGNITOR, где база данных создается приложением администратора в LARAVEL... в этом проблема...

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

Зашифрованный пароль

$2y$10$cwd15HRgON0ytqkkV5F9zupfUOkqaii7fpbB9Kjd9I7W46LRYY0Km

И настоящий ПАРОЛЬ

123456

Пожалуйста помоги...


person Shailender Ahuja    schedule 21.09.2019    source источник


Ответы (2)


Ответ Caddy DZ правильный, но чтобы лучше ответить на ваш вопрос, вы должны знать, что каждый раз, когда вы генерируете новый пароль с помощью функции bcrypt, используется новая случайная соль.
Это приводит к тому, что вы получаете другой хэш для одного и того же пароль каждый раз, когда вы его генерируете.

Единственный способ проверить правильность пароля — использовать встроенную функцию php с именем password_verify.
Эта функция будет хэшировать ваш пароль (который вы указываете в качестве второго аргумента) с той же солью, которая была используется для генерации сохраненного пароля (используемая соль хранится в хэше пароля), который уже есть в базе данных:

$password = '123456';
$saved = 'your stored hash';

if (password_verify($password, $saved)) {
    echo 'Correct password.';
}

Вы можете проверить документацию о password_verify.

person mdexp    schedule 21.09.2019
comment
спасибо :) Ответ Кэдди точен, так как прочитал еще несколько вариантов, и ваш ответ только что точно решил мою проблему :) - person Shailender Ahuja; 23.09.2019
comment
Если вопрос решен то не забудьте отметить правильный ответ! - person mdexp; 23.09.2019

Это не стандартное шифрование, которое можно расшифровать, это хеширование, которое представляет собой только одно (1) шифрование.
Чтобы это работало, вам нужно использовать один и тот же алгоритм хеширования между двумя приложениями (Laravel и CodeIgniter).

Например, laravel по умолчанию использует bcrypt для хеширования пароля, поэтому вам нужно настроить CodeIgniter для использования того же или наоборот.

bcrypt для codeigniter

person Salim Djerbouh    schedule 21.09.2019
comment
Спасибо, я ищу тот же алгоритм хеширования, о котором вы говорите bcrypt, но в коде laraval есть HASH KEY-как его использовать??? - person Shailender Ahuja; 22.09.2019
comment
добавлена ​​ссылка на bcrypt для воспламенителя кода, он встроен в Laravel, поэтому устанавливать нечего - person Salim Djerbouh; 22.09.2019
comment
спасибо, но он не генерирует ЖЕ зашифрованный ПАРОЛЬ с помощью bcrypt .... пожалуйста, обратитесь к Вопросу, чтобы увидеть сохраненный пароль с фактической строкой пароля ... - person Shailender Ahuja; 22.09.2019
comment
Он разработан таким образом, но все же будет работать для обоих, см. stackoverflow.com/a/39198006/5581565 - person Salim Djerbouh; 22.09.2019