如何创build一个laravel哈希密码

我正在尝试为Laravel创build一个哈希密码。 现在有人告诉我使用Laravel哈希帮助器,但我似乎无法find它,或者我正在寻找错误的方向。

如何创build一个laravel哈希密码? 哪里?

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

Laravel使用Bcrypt散列密码:

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

这将创build一个哈希密码。 你可以在你的控制器或模型中使用它,例如,如果用户使用POST方法使用表单向你的控制器提交一个密码,那么你可以使用类似下面的方法对它进行哈希处理:

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

在这里, $hashed将包含哈希密码。 基本上,在创build/注册一个新用户时,你会这样做,例如,如果用户使用表单提交详细信息,如nameemailusernamepassword等,那么在将数据插入数据库之前,在validation数据之后,将散列密码。 有关更多信息,请阅读文档 。

更新:

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

所以,你将$hashedPassword插入数据库。 希望,现在很清楚,如果你仍然感到困惑,那么我build议你阅读一些教程,看laracasts.com和tutsplus.com上的一些屏幕演示 ,并阅读Laravel的书, 这是一个免费的电子书 ,你可以下载它。

更新:由于OP想要使用Laravel Hash手动encryption密码而没有任何类或forms,所以这是一个从命令提示符使用artisan tinker程序的替代方法:

  1. 转到您的命令提示符/terminal
  2. 导航到Laravel安装(您的项目的根目录)
  3. 使用cd <directory name>并从命令提示符/terminal按Enter键
  4. 然后写php artisan tinker ,然后按回车
  5. 然后编写echo Hash::make('somestring');
  6. 你会在控制台上得到一个哈希密码,复制它,然后做你想做的事情。

更新(Laravel 5.x):

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

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

 $hashedpassword = bcrypt('plaintextpassword'); 

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

Fn Ref: bcrypt

要将密码存储在数据库中,请对密码进行散列,然后保存。

 $password = Input::get('password_from_user'); $hashed = Hash::make($password); // save $hashed value 

要validation密码,请从数据库获取帐户存储的密码

 // $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'); 

你可以find更多的信息: 在这里

在BcryptHasher.php中你可以find哈希码:

 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); 

哈希密码与laravel 5.x密码相同。

没有必要给盐和成本,它将采取其默认值。

立即可以用Convert-to-md5.xyz生成

好的,这是hash.php中make函数的一个提取

  $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文件并运行它。