密码处理类

作者: A罗小布 | 来源:发表于2018-06-11 11:25 被阅读39次

    前言

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

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

    相关文章

      网友评论

        本文标题:密码处理类

        本文链接:https://www.haomeiwen.com/subject/mrwceftx.html