密码处理类

前言

在实际项目中对用户密码的加密方式使用简单的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. 命名空间的引入同加密

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,035评论 3 119
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,191评论 4 61
  • 2017年是知识付费大爆发的一年,各类知识付费平台接二连三地推出各种知识付费产品和服务:2月,36氪付费专栏“开氪...
    运营学习笔记阅读 3,157评论 0 0
  • 某人要过生日,特献花一朵,祝幸福圆满
    亿米阅读 1,332评论 0 2
  • 长言道导读:此文献给一直在用行动创造精彩人生的追梦人! 开篇:人生如戏,全凭演技。 今天,让我们一起来讨论一下这句...
    长言道阅读 3,290评论 0 0