哈希算法是一个单向函数。它可以将任何大小的数据转化为定长的“指纹”,并且无法被反向计算

依赖性

crypt() 函数需支持 CRYPT_BLOWFISH

常量

PASSWORD_BCRYPT

PASSWORD_DEFAULT

函数

1、string  password_hash($password, $algo[, $options = array()])

参数:

$password:密码

$algo:哈希算法

$options:选项

功能:将一段密码$password,通过哈希算法,将其转换成一段复杂的哈希值字符串

$pwd = "123456";
$hash = password_hash($pwd, PASSWORD_DEFAULT);
echo $hash;

输出类似:$2y$10$yA/6ibVYdlQ2NcgeQguDSen6zYealETVXa.g227EsHvlK2RI6etYi

且刷新页面该哈希值也会不断的变化

2、bool password_verify($password, $hash)

参数:

$password:密码

$hash:哈希值

功能:校验密码是否和哈希值匹配

 $pwd = "123456";
$hash_pwd = password_hash($pwd,PASSWORD_DEFAULT);
$verify = password_verify($pwd, $hash_pwd);
var_dump($verify);

结果:如果该哈希值$hash_pwd是由$pwd通过password_hash函数生成的,那么由password_verify函数来校检的话,返回的是TRUE;相反,则生成FALSE

3、boolean password_needs_rehash ( string $hash , integer $algo [, array $options ] )

参数:

$hash:哈希值

$algo:哈希算法

$options:选项

功能:检验该$hash是否还需要进行哈希转换。如果,$hash是已经经过password_hash函数转换生成的结果,则不需要再进行哈希转换,password_needs_rehash函数返回FALSE;相反,返回TRUE

 $pwd = "123456";
$hash_pwd = password_hash($pwd,PASSWORD_DEFAULT);
$needrehash1 = password_needs_rehash($pwd,PASSWORD_DEFAULT);      //需要进行哈希转换,返回TRUE
$needrehash2 = password_needs_rehash($hash_pwd ,PASSWORD_BCRYPT);   //不需要再进行哈希转换,返回FALSE
var_dump($needrehash);

4、array  password_get_info($hash)

参数:

$hash:一个由password_hash函数创建的散列值(哈希值)。

功能:返回有关哈希数组信息

 $pwd = "123456";
$hash_pwd = password_hash($pwd,PASSWORD_DEFAULT);
$hashinfo = password_get_info($hash_pwd);
var_dump($hashinfo);

例:

CI框架 -- 密码哈希的更多相关文章

  1. CI框架使用PHPmailer发送邮件找回密码

    之前用PHP+Mysql+jQuery结合ThinkPHP做了一个用户验证邮箱找回密码功能<ThinkPHP之PHP+Mysql+jQuery发送邮箱找回密码>,现在分享一下用CI框架结合 ...

  2. 初学后台框架总结篇二——快速了解CI框架

    一.下载CI框架并安装,这里放置一张自己的项目目录结构图 目录框架搭建好之后开始将自己的项目与框架融合 二.更改相关配置 1.用任何文本编辑器打开 application/config/config. ...

  3. 各种demo——CI框架学习

    各种demo——CI框架学习   寒假学习一下CI框架,请各位多多指教! 一.CI的HelloWorld! 注意:CI禁止直接通过文件目录来访问控制器. ./application/controlle ...

  4. PHP CI框架最近学到的内容

    CI框架配置方面注意的细节 在config里面的database.php里面是和数据库配置相关的内容 $db['default'] = array( 'dsn' => '', 'hostname ...

  5. php上传zip文件在线解压文件在指定目录下,CI框架版本

    我从网上找的文件php在线解压zip压缩文件 文件为jy.php可以直接执行,但是怎样将其加到CI框架中呢?? jy.php文件 <?php header("content-Type: ...

  6. 浅谈PHP的CI框架(一)

    作为前端开发人员,掌握一门后端语言是必不可少的,PHP的CI框架是一个快速开发框架,基于MVC,比较接近原生PHP,在原有的PHP代码上封装了许多类,易上手,容易扩展,适用于小项目,并且CI的文档及案 ...

  7. 一个用户管理的ci框架的小demo--转载

    一个ci框架的小demo 最近在学习ci框架,作为一个初学者,在啃完一遍官方文档并也跟着官方文档的例程(新闻发布系统)做了一遍,决定在将之前练习PHP与MySQL数据库的用户管理系统再用ci框架实现一 ...

  8. CI框架入门教程

    1. URL常用的相关函数 url相关函数在辅助类url中第一,要使用它们必须先加载$this->load->helper('url')或者自动装载    site_url('控制器/方法 ...

  9. php CI框架基础知识

    一. CI框架的MVC导图 二. CI框架目录文件介绍 (1)index.php  单入口         整个框架对外暴露的唯一访问文件 (2)application  应用文件(放置用户信息,用户 ...

随机推荐

  1. PBR Metallic/Roughness工作流中Albedo与F0的计算方法

    首先简单回顾一下典型的纯金属与绝缘体的PBR属性: 纯金属: Albedo(diff): 0 F0(spec): >0.3 (or 0.5, epic/allegorithmic etc.) M ...

  2. (原)ubuntu下cadvisor+influxdb+grafana+supervisord监控主机和docker的containers

    ubuntu下cadvisor+influxdb+grafana+supervisord监控主机和docker的containers(运行在主机上) 适用于类ubuntu系统.amd64. 1. in ...

  3. 【线程】linux之多线程同步互斥技术

      1.同步机制      线程同步机制主要有:互斥量/信号量/条件变量/读写锁等. 2.技术示例 创建2个计数线程A和B,每次计数加1,当为偶数时,A线程计数:当为奇数时,B线程计数.    源码: ...

  4. 【TensorFlow】tf.nn.embedding_lookup函数的用法

    tf.nn.embedding_lookup函数的用法主要是选取一个张量里面索引对应的元素.tf.nn.embedding_lookup(tensor, id):tensor就是输入张量,id就是张量 ...

  5. AIX查看CPU、内存等信息

    AIX下查看CPUAIX操作系统AIX的硬件信息可以通过prtconf命令看到.1. 查看逻辑CPU个数#pmcycles -mCPU 0 runs at 4204 MHzCPU 1 runs at ...

  6. hdu1102(最小生成树水题)

    #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> us ...

  7. Highcharts 多个Y轴动态刷新数据

    效果图: js代码: $(function() { $(document).ready(function() { Highcharts.setOptions({ global: { useUTC: f ...

  8. 4. 文本相似度计算-CNN-DSSM算法

    1. 文本相似度计算-文本向量化 2. 文本相似度计算-距离的度量 3. 文本相似度计算-DSSM算法 4. 文本相似度计算-CNN-DSSM算法 1. 前言 之前介绍了DSSM算法,它主要是用了DN ...

  9. Flask简介,安装,demo,快速入门

    1.Flask简介 Flask是一个相对于Django而言轻量级的Web框架. 和Django大包大揽不同,Flask建立于一系列的开源软件包之上,这其中 最主要的是WSGI应用开发库Werkzeug ...

  10. spring mvc之请求过程源码分析

    简介 上一篇,我们分析了spring mvc启动过程的源码,这一节,来一起分析下在用户请求controller的过程中,spring mvc做了什么事? 一.准备 我写这么一个controller p ...