栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > PHP > php开源框架 > Laravel

哈希 - laravel 5.3 中文文档

Laravel 更新时间:发布时间: 百科书网 趣学号

# 哈希

- [简介](#introduction)
- [基本用法](#basic-usage)


## 简介

Laravel 通过 `Hash` [facade](/docs/{{version}}/facades) 提供 Bcrypt 加密来保存用户密码。如果你在当前应用使用了 `AuthController` 控制器,它将自动使用 Bcrypt 加密来进行注册跟验证。

由于 Bcrypt 的 「加密系数(word fator)」可以任意调整,这使它成为最好的加密选择。这代表每一次加密的时间可以随着硬件设备的升级而加长。


## 基本用法

你可以通过调用 `Hash` facade 的 `make` 方法加密一个密码:


namespace AppHttpControllers;

use Hash;
use AppUser;
use IlluminateHttpRequest;
use AppHttpControllersController;

class UserController extends Controller
{

public function updatePassword(Request $request, $id)
{
$user = User::findOrFail($id);

// 验证新密码的长度...

$user->fill([
'password' => Hash::make($request->newPassword)
])->save();
}
}

另外,你也可以使用 `bcrypt` 辅助函数:

bcrypt('plain-text');

#### 根据哈希值验证密码

`check` 方法允许你通过一个指定的纯字符串跟哈希值进行验证。如果你目前正使用 [Laravel 内含的](/docs/{{version}}/authentication) `AuthController`,你可能不需要直接使用该方法,它已经包含在控制器当中并且会被自动调用。

if (Hash::check('plain-text', $hashedPassword)) {
// The passwords match...
}

#### 验证密码是否须重新加密

`needsRehash` 函数允许你检查已加密的密码所使用的加密系数是否被修改:

if (Hash::needsRehash($hashed)) {
$hashed = Hash::make('plain-text');
}

## 译者署名
| 用户名 | 头像 | 职能 | 签名 |
|---|---|---|---|
| [@silvercell](https://github.com/silvercell) | | 翻译 | [你今天吃药了吗?](http://www.cxdog.com) |
| [@buer](https://github.com/buer0) | | 翻译 | [已放弃治疗](http://www.cxdog.com) |


转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/214103.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号