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

哈希 - laravel 5.3 中文文档

Laravel 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

# 哈希

- [简介](#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.mshxw.com
本文地址:https://www.mshxw.com/it/214103.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号