banner

帮助中心 > 新闻资讯 >密码处理类

密码处理类

发布时间:2019-01-10

前言

在实际项目中对用户密码的加密方式使用简单的md5加密已过时,实际上在md5的加密方式是很容易被反md5解析的,而这种解密方式已得到了普及。在这我封装了一个哈希加密类,相对提高了密码的加密安全强度,同时也基于面向对象思想给了封装,提高了复用性,基于tp5的extend做了相应插件封装一件接入

注意事项

  1. 我的测试环境thinkphp5.0+mysql(php>=5.4)
  2. mysql 密码字段password varchar 255(最好这样设置,php文档也有这样推荐)
  3. 原始密码及加密之前的密码长度不能超过72个字符

使用场景

  1. 用户注册、忘记密码等需要新密码时,使用此类密码加密方法Password::hash();
  2. 登陆、需要密码验证时使用此类密码验证方法Password::verify();

步骤

一. 类库下载和融入项目

  1. 主页地址(点击)
  2. 不管你用git还是Download ZIP 下载 最终的目的是得到源码


    下载方式
  3. 下载后调整文件夹的结构如图 文件夹结构应该是password/Password.php(注意大小写)


    下载后调整文件结构
  1. 把3中整理好的文件加一起剪切到项目extend的文件夹下,如图


    融入项目

二. 加密的使用

  1. 使用步骤
  //用户的原始密码
    $password = 12345;
    //调用加密类
    $hashPassword = Password::hash($password);
    //打印加密后的密码($hashPasword用于保存数据库)
    var_dump($hashPassword);    
  1. 注意事项:在使用Password类时在类的顶部需要引入类的命名空间use password\Password; 如果是用phpStrom等IDE工具是有自动感应和补全功能,当输入Passwod时就会自动补全了
  2. 得到$hashPassword时就可以把此数据存入数据库了

三.密码校验的使用

  1. 使用步骤
  //客户端输入的密码
    $password = '123456';
    //数据库读取加密后的密码
 $hashPassword='$12$yaxQrgZ27wgX9EaQX2vmteAv3cCS3oNO4wkfWRrGQJq3zJcs7f5c.';
    //进行密码匹配 $res是布尔值 $res === true 匹配成功,$res===false 匹配失败
    $res = Password::verify($password,$hashPassword);
  1. 命名空间的引入同加密

小伙伴们是不是觉得很简单,快去动手试试吧!有什么疑问欢迎留言!
欢迎点赞,收藏,您的鼓励是我前进的最大动力! 如果您兴趣好给我打赏,我也不会拒绝的.

相关推荐