CI框架 -- 密码哈希
哈希算法是一个单向函数。它可以将任何大小的数据转化为定长的“指纹”,并且无法被反向计算
依赖性
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框架 -- 密码哈希的更多相关文章
- CI框架使用PHPmailer发送邮件找回密码
之前用PHP+Mysql+jQuery结合ThinkPHP做了一个用户验证邮箱找回密码功能<ThinkPHP之PHP+Mysql+jQuery发送邮箱找回密码>,现在分享一下用CI框架结合 ...
- 初学后台框架总结篇二——快速了解CI框架
一.下载CI框架并安装,这里放置一张自己的项目目录结构图 目录框架搭建好之后开始将自己的项目与框架融合 二.更改相关配置 1.用任何文本编辑器打开 application/config/config. ...
- 各种demo——CI框架学习
各种demo——CI框架学习 寒假学习一下CI框架,请各位多多指教! 一.CI的HelloWorld! 注意:CI禁止直接通过文件目录来访问控制器. ./application/controlle ...
- PHP CI框架最近学到的内容
CI框架配置方面注意的细节 在config里面的database.php里面是和数据库配置相关的内容 $db['default'] = array( 'dsn' => '', 'hostname ...
- php上传zip文件在线解压文件在指定目录下,CI框架版本
我从网上找的文件php在线解压zip压缩文件 文件为jy.php可以直接执行,但是怎样将其加到CI框架中呢?? jy.php文件 <?php header("content-Type: ...
- 浅谈PHP的CI框架(一)
作为前端开发人员,掌握一门后端语言是必不可少的,PHP的CI框架是一个快速开发框架,基于MVC,比较接近原生PHP,在原有的PHP代码上封装了许多类,易上手,容易扩展,适用于小项目,并且CI的文档及案 ...
- 一个用户管理的ci框架的小demo--转载
一个ci框架的小demo 最近在学习ci框架,作为一个初学者,在啃完一遍官方文档并也跟着官方文档的例程(新闻发布系统)做了一遍,决定在将之前练习PHP与MySQL数据库的用户管理系统再用ci框架实现一 ...
- CI框架入门教程
1. URL常用的相关函数 url相关函数在辅助类url中第一,要使用它们必须先加载$this->load->helper('url')或者自动装载 site_url('控制器/方法 ...
- php CI框架基础知识
一. CI框架的MVC导图 二. CI框架目录文件介绍 (1)index.php 单入口 整个框架对外暴露的唯一访问文件 (2)application 应用文件(放置用户信息,用户 ...
随机推荐
- docker使用示例
本文使用docker容器运行wordpress博客,采用了三种方法来演示,docker的使用 自建wordpress容器 采用官方的wordpress容器 采用docker compose容器管理工具 ...
- u3d中的INput
属性 属性: 功能: 轴 (Axes) 包含当前工程的所有定义的输入轴:数目 (Size) 该工程中不同输入轴的数量,元素 0.1.... 是要修改的特定的轴. 名称 (Name) 在游戏启动器中以及 ...
- 【运维】Java开发人员掌握的Linux命令
作为Java开发人员,要掌握常用的Linux命令. 为什么要写此文,笔者的Linux很厉害?NoNoNo,正因为笔者不熟悉Linux才写此文,以作整理. 最主要的命令 查询命令的简要用法,help 当 ...
- pom.xml里发布和下载包
1.下载包 在<project>标签中 <repositories> <repository> <id>nexus</id> <url ...
- SparkStreaming python 读取kafka数据将结果输出到单个指定本地文件
# -*- coding: UTF-8 -*- #!/bin/env python3 # filename readFromKafkaStreamingGetLocation.py import IP ...
- WPF 自定义事件
1.可传参数 namespace DrugInfo { public class ChooseDrugRoutedEventArgs : RoutedEventArgs { public Choose ...
- C# Dictionary通过value获取对应的key值
1:最直白的循环遍历方法,可以分为遍历key--value键值对以及所有的key两种表现形式 2:用Linq的方式去查询(当然了这里要添加对应的命名空间 using System.Linq) 如下为一 ...
- maven项目强制自动更新所有jar包
选中即可:
- Python- requests详解
Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库.它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTT ...
- SOAPUI 測试Http 协义
眼下大多站点都是採用Http 协义的,那SOAPUI要怎样操作呢 网上好多是用谷歌做演示样例的,因为谷歌国内正常方式无法訪问,故下面将採用百度站点做演示样例 1:打开浏览器输入百度网址在文库中输入SO ...