Я пытаюсь создать хешированный пароль для Laravel. Теперь кто-то сказал мне использовать помощника хэша Laravel, но я не могу его найти или я искал неправильное направление.
Как создать пароль для хэширования laravel? И где?
Изменить: я знаю, что такое код, но я не знаю, где и как его использовать, поэтому он возвращает мне хешированный пароль. Если я получу хешированный пароль, тогда я могу вручную вставить его в базу данных
Хеширование пароля с помощью Bcrypt в Laravel
:
$password = Hash::make('yourpassword');
Это создаст хешированный пароль. Вы можете использовать его в своем контроллере или даже в модели, например, если пользователь отправляет пароль с помощью формы на ваш контроллер, используя метод POST
тогда вы можете использовать его так:
$password = Input::get('passwordformfield'); // password is form field $hashed = Hash::make($password);
Здесь $hashed
будет содержать хешированный пароль. В основном, вы сделаете это при создании / регистрации нового пользователя, например, если пользователь отправляет данные, такие как name
, email
, username
и password
т. Д., Используя форму, а затем перед вставкой данных в базу данных вы После ввода данных будет сохранен пароль. Для получения дополнительной информации прочтите документацию .
Обновить:
$password = 'JohnDoe'; $hashedPassword = Hash::make($password); echo $hashedPassword; // $2y$10$jSAr/RwmjhwioDlJErOk9OQEO7huLz9O6Iuf/udyGbHPiTNuB3Iuy
Итак, вы $hashedPassword
в базу данных. Надеюсь, теперь ясно, и если все-таки вы в замешательстве, я предлагаю вам прочитать некоторые уроки, посмотреть некоторые ролики на laracasts.com и tutsplus.com, а также прочитать книгу о Laravel
, это бесплатная электронная книга , вы можете скачать ее ,
Обновление: поскольку OP
хочет вручную шифровать пароль, используя Laravel Hash
без какого-либо класса или формы, так что это альтернативный способ использования artisan tinker
из командной строки:
Laravel
(корневой каталог вашего проекта) cd <directory name>
и нажмите enter из командной строки / терминала php artisan tinker
и нажмите enter. echo Hash::make('somestring');
// Also one can use bcrypt $password = bcrypt('JohnDoe');
Laravel 5 использует bcrypt
. Таким образом, вы можете это сделать.
$hashedpassword = bcrypt('plaintextpassword');
выход которого можно сохранить в поле пароля таблицы базы данных.
Fn Ссылка: bcrypt
$password = Input::get('password_from_user'); $hashed = Hash::make($password); // save $hashed value
// $user is database object // $inputs is Input from user if( \Illuminate\Support\Facades\Hash::check( $inputs['password'], $user['password']) == false) { // Password is not matching } else { // Password is matching }
Вы можете использовать следующее:
$hashed_password = Hash::make('Your Unhashed Password');
Вы можете найти дополнительную информацию: здесь
В BcryptHasher.php вы можете найти хеш-код:
public function make($value, array $options = array()) { $cost = isset($options['rounds']) ? $options['rounds'] : $this->rounds; $hash = password_hash($value, PASSWORD_BCRYPT, array('cost' => $cost)); $hash = password_hash($value, PASSWORD_BCRYPT, array('cost' => $cost)); echo $value.' '.PASSWORD_BCRYPT.' '.$cost.' '; echo $hash;die(); if ($hash === false) { throw new RuntimeException("Bcrypt hashing not supported."); } return $hash; }
$pasword = 'user-password'; $hash = password_hash($password, PASSWORD_DEFAULT);
Хешированный пароль такой же, как пароль larvel 5.x bcrypt.
Не нужно давать соль и стоимость, она будет принимать значения по умолчанию.
вы можете сгенерировать с помощью Convert-to-md5.xyz
Фасад Laravel Hash обеспечивает безопасное хэширование Bcrypt для хранения пользовательских паролей.
Для базового использования потребовались две вещи:
Сначала включите Facade в свой файл
use Illuminate\Support\Facades\Hash;
и используйте метод создания для генерации пароля.
$hashedPassword = Hash::make($request->newPassword);
и если вы хотите совместить строку Hashed, вы можете использовать приведенный ниже код:
Hash::check($request->newPasswordAtLogin, $hashedPassword)
Вы можете узнать больше с ссылкой на документ Laravel ниже для Hashing: https://laravel.com/docs/5.5/hashing
ok, это выдержка из функции make в hash.php
$work = str_pad(8, 2, '0', STR_PAD_LEFT); // Bcrypt expects the salt to be 22 base64 encoded characters including // dots and slashes. We will get rid of the plus signs included in the // base64 data and replace them with dots. if (function_exists('openssl_random_pseudo_bytes')) { $salt = openssl_random_pseudo_bytes(16); } else { $salt = Str::random(40); } $salt = substr(strtr(base64_encode($salt), '+', '.'), 0 , 22); echo crypt('yourpassword', '$2a$'.$work.'$'.$salt);
Просто скопируйте / вставьте его в файл php и запустите его.