我试图创建一个Laravel哈希密码。 现在有人告诉我使用Laravel哈希帮助,但我似乎无法找到它,不然我找错了方向。
如何创建一个laravel散列密码? 在哪里?
编辑:我知道代码是什么,但我不知道在哪里,以及如何使它给我回哈希密码来使用它。 如果我得到的散列密码,然后我可以手动将它插入到数据库
我试图创建一个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>
然后按从命令提示/终端输入 php artisan tinker
,然后按回车 echo Hash::make('somestring');
// Also one can use bcrypt
$password = bcrypt('JohnDoe');
Laravel 5使用bcrypt
。 所以,你可以做到这一点。
$hashedpassword = bcrypt('plaintextpassword');
输出,你可以保存到数据库表中的密码字段。
FN编号: bcrypt
该Laravel哈希门面提供安全Bcrypt散列存储用户密码。
基本用法需要两件事情:
首先包括门面文件
use Illuminate\Support\Facades\Hash;
并用Make
方法来生成密码。
$hashedPassword = Hash::make($request->newPassword);
当你想散列匹配字符串,你可以使用下面的代码:
Hash::check($request->newPasswordAtLogin, $hashedPassword)
您可以了解更多与下面的Laravel文件链接哈希: https://laravel.com/docs/5.5/hashing
$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');
你可以找到更多信息: 这里
如果您想了解如何laravel工作excatly您可以查看在Github上的完整的类: https://github.com/illuminate/hashing/blob/master/BcryptHasher.php
但基本上有涉及对三个PHP方法:
$pasword = 'user-password';
// To create a valid password out of laravel Try out!
$cost=10; // Default cost
$password = password_hash($pasword, PASSWORD_BCRYPT, ['cost' => $cost]);
// To validate the password you can use
$hash = '$2y$10$NhRNj6QF.Bo6ePSRsClYD.4zHFyoQr/WOdcESjIuRsluN1DvzqSHm';
if (password_verify($pasword, $hash)) {
echo 'Password is valid!';
} else {
echo 'Invalid password.';
}
//Finally if you have a $hash but you want to know the information about that hash.
print_r( password_get_info( $password_hash ));
哈希密码是一样的laravel 5.x的bcrypt密码。 没有必要给盐和成本,将采取默认值。
这些方法已经在laravel类中实现,但如果你想了解更多请查看官方文档: http://php.net/manual/en/function.password-hash.php
在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;
}
在laravel和流明比较密码:
这是可能的是bcrypt功能不PHP7工作,那么您可以在laravel和流明使用下面的代码按您的要求:
use Illuminate\Support\Facades\Hash;
$test = app('hash')->make("test");
if (Hash::check('test', $test)) {
echo "matched";
} else {
echo "no matched";
}
我希望,这帮助将让你快乐:)
use Illuminate\Support\Facades\Hash;
if(Hash::check($plain-text,$hashed-text))
{
return true;
}
else
{
return false;
}
EG-$纯文本=“文本”; $散列文本=哈希::使(“文”);
没关系,这是从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文件并运行它。