如何创建laravel散列密码如何创建laravel散列密码(How to create a lar

2019-06-17 09:55发布

我试图创建一个Laravel哈希密码。 现在有人告诉我使用Laravel哈希帮助,但我似乎无法找到它,不然我找错了方向。

如何创建一个laravel散列密码? 在哪里?

编辑:我知道代码是什么,但我不知道在哪里,以及如何使它给我回哈希密码来使用它。 如果我得到的散列密码,然后我可以手动将它插入到数据库

Answer 1:

一个散列密码在使用Bcrypt Laravel

$password = Hash::make('yourpassword');

这将创建一个散列密码。 你可能在你的控制,甚至在模型中使用它,例如,如果用户提交使用表格来你的控制器使用密码POST方法,那么你可以使用这样的哈希它:

$password = Input::get('passwordformfield'); // password is form field
$hashed = Hash::make($password);

在这里, $hashed将包含哈希密码。 基本上,你会创建/注册新用户时做到这一点,因此,举例来说,如果用户提交的详细信息,例如, nameemailusernamepassword使用表,那么你将数据插入到数据库之前等你确认数据后,“会散列密码。 欲了解更多信息, 阅读文档 。

更新:

$password = 'JohnDoe';
$hashedPassword = Hash::make($password);
echo $hashedPassword; // $2y$10$jSAr/RwmjhwioDlJErOk9OQEO7huLz9O6Iuf/udyGbHPiTNuB3Iuy

所以,你会插入$hashedPassword到数据库中。 希望,它现在很清楚,如果你仍然感到困惑的话,我建议你阅读一些教程,观看一些屏幕投下laracasts.com和tutsplus.com ,也读了一本书上Laravel , 这是一个免费的电子书 ,你就可以下载。

更新:由于OP希望使用Laravel手动加密密码Hash没有任何类或形成,所以这是使用一种替代的方式artisan tinker从命令提示:

  1. 进入命令提示符/终端
  2. 导航到Laravel安装(你的项目的根目录)
  3. 使用cd <directory name>然后按从命令提示/终端输入
  4. 然后写php artisan tinker ,然后按回车
  5. 然后写echo Hash::make('somestring');
  6. 你会得到控制台上的散列密码,复制它,然后做任何你想做的事情。

更新(Laravel 5.x的):

// Also one can use bcrypt
$password = bcrypt('JohnDoe');



Answer 2:

Laravel 5使用bcrypt 。 所以,你可以做到这一点。

$hashedpassword = bcrypt('plaintextpassword');

输出,你可以保存到数据库表中的密码字段。

FN编号: bcrypt



Answer 3:

该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



Answer 4:

要存储在数据库中的密码,使密码散列,然后保存。

$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 
}


Answer 5:

您可以使用以下方法:

$hashed_password = Hash::make('Your Unhashed Password');

你可以找到更多信息: 这里



Answer 6:

如果您想了解如何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



Answer 7:

在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;
}


Answer 8:

在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";
}

我希望,这帮助将让你快乐:)



Answer 9:

use Illuminate\Support\Facades\Hash;
if(Hash::check($plain-text,$hashed-text))
    {
       return true;
    }
    else
    {
        return false;
    }

EG-$纯文本=“文本”; $散列文本=哈希::使(“文”);



Answer 10:

没关系,这是从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文件并运行它。



文章来源: How to create a laravel hashed password