[ Laravel 5.3 文档 ] 安全 —— 哈希(Hashing)

   2016-10-07 0
核心提示:1、简介Laravel的Hash门面为存储用户密码提供了安全的Bcrypt哈希算法。如果你正在使用 Laravel 应用自带的LoginController和RegisterController控制器,它们将会自动在注册和认证时使用该 Bcrypt。注:Bcrypt 是散列密码的绝佳选择,因为其“工作因子”是可调

1、简介

Laravel的  Hash 门面为存储用户密码提供了安全的  Bcrypt 哈希算法。如果你正在使用 Laravel 应用自带的 LoginControllerRegisterController 控制器,它们将会自动在注册和认证时使用该 Bcrypt。

注:Bcrypt 是散列密码的绝佳选择,因为其“工作因子”是可调整的,这意味着随着硬件功能的提升,生成哈希所花费的时间也会增加。

2、基本使用

可以调用 Hash 门面上的  make 方法对存储密码进行哈希:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use App\Http\Controllers\Controller;

class UpdatePasswordController extends Controller
{
    /**
     * Update the password for the user.
     *
     * @param  Request  $request
     * @return Response
     */
    public function update(Request $request)
    {
        // Validate the new password length...

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

通过哈希验证密码

check 方法允许你验证给定原生字符串和给定哈希是否相等,不过,如果你在使用 Laravel 自带的 LoginController (详见用户认证一节),就不需要再直接使用该方法,因为这个控制器自动调用了该方法:

if (Hash::check('plain-text', $hashedPassword)) {
    // 密码匹配...
}

检查密码是否需要被重新哈希

needsRehash 方法允许你判断哈希计算器使用的工作因子在上次密码被哈希后是否发生改变:

if (Hash::needsRehash($hashed)) {
    $hashed = Hash::make('plain-text');
}
 
标签: 哈希表 Laravel
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • Perl学习笔记(3)----遍历哈希表的一个容易疏忽
      今天做 Google的 Code Jam 上的一道题目:https://code.google.com/codejam/contest/351101/dashboard,用Perl语言解答的。遇到一个关于hash遍历的问题,思考了好一会儿才发现问题所在,为了简化叙述,写了一个简单的遍历哈希表的Perl程序如下:    1
    02-09
  • 数据结构Typescript之哈希表实现详解
    目录哈希表的结构特点面向对象方法封装哈希表哈希冲突构造函数基本单元:键值对主体:哈希表增加键值对获取键值删除键值对哈希表的结构特点相比链表繁杂的遍历处理,哈希表的作用是存储无固定顺序的键值对。哈希表的元素查找时间复杂度为O(1)。尝试手动构建一
  • 【翻译】Programming Ruby——数组,哈希表和控
    数组和哈希表Ruby的数组和哈希表是索引集合。两都都是保存对象集合并能通过键来读取。数组的键是数字,但是哈希表则支持对象作为键。它们都是随着新元素的加入要增长。在访问元素方面,数组效率比较高,但哈希表更加的灵活。无论是数组还是哈希表,都能保存不
    02-09
  • C/C++哈希表优化LeetCode题解997找到小镇的法官
    C/C++哈希表优化LeetCode题解997找到小镇的法官
    目录方法一、哈希表方法二、优化方法一、哈希表今天这道题比较简单,我们可以统计每个人信任别人的数量和被信任的数量,如果存在某个人信任别人的数量为0,且被信任的数量为 n-1,那么,这个人就是法官。因为本题的数据范围为 [1,1000],数据范围比较小,所以
  • PHP内核探索之PHP中的哈希表
    PHP内核探索之PHP中的哈希表
    在PHP内核中,其中一个很重要的数据结构就是HashTable。我们常用的数组,在内核中就是用HashTable来实现。那么,PHP的HashTable是怎么实现的呢?最近在看HashTable的数据结构,但是算法书籍里面没有具体的实现算法,刚好最近也在阅读PHP的源码,于是参考PHP的
    12-23 PHP哈希表
  • 轻松学习C#的哈希表
    轻松学习C#的哈希表,对C#的哈希表感兴趣的朋友可以参考本篇文章,帮助大家更灵活的运用C#的哈希表。
    11-26 C#哈希表
  • Powershell使用嵌套哈希表实例 嵌套哈希表的2种写法例子
    Powershell使用嵌套哈希表实例 嵌套哈希表的2种
    这篇文章主要介绍了Powershell使用嵌套哈希表实例,嵌套哈希表的2种写法例子,需要的朋友可以参考下
  • php内核解析:PHP中的哈希表
    PHP中使用最为频繁的数据类型非字符串和数组莫属,PHP比较容易上手也得益于非常灵活的数组类型。 在开始详细介绍这些数据类型之前有必要介绍一下哈希表(HashTable)。 哈希表是PHP实现中尤为关键的数据结构
    11-06 php哈希表
  • Windows Powershell使用哈希表
    哈希表(hashtable)有时候也被称为:“关联数组”或“字典”。哈希表可以称得上是计算机科学中最重要的数据结构之一,例如:在计算机操作系统、数据库系统、编译器、加密算法等计算机底层程序中,哈希表都发挥着重要的作用。
  • 哈希表实验C语言版实现
    以下是对哈希表实验用C语言实现的代码进行了详细的分析介绍,需要的朋友可以参考下
点击排行