美文网首页Wordpress相关文章
wordpress的用户验证以及密码加密——phpass

wordpress的用户验证以及密码加密——phpass

作者: ppmoon | 来源:发表于2016-11-02 10:01 被阅读1517次

wordpress作为一款博客型的CMS可以为很多小型信息服务的网站提供支持,通过wordpress我们可以快速搭建网站,也比较符合当前的创业开放需求。
随着使用wordpress的时间增长,我们需求也发生了很多变化,这个时候我们可能希望自己开发一套系统来管理wordpress的内容。最近工作就是遇到了这样的问题,自己的程序链接wordpress数据库很简单,唯一麻烦点的是用户验证,本片文章就讨论一下wordpress是如何进行用户验证和密码加密的。

密码存储wordpress数据库的什么地方?

密码在wordpress数据库当中的wp_users表单的user_pass的字段当中。


密码存储位置

我们看到密码是一堆乱码生成的。非明文密码是为了保证用户数据安全。

密码是如何加密的?

wordpress很早之前的加密方式是MD5,但是大家都知道MD5这种加密方式密码被破解也只是个时间问题。


phpass

所以在wordpress当中使用了phpass加密的方式,用phpass加密过的密码每次得到的结果都不一样,所以这就意味着撞库的成本会增加,(其实就2016年的计算水平来说已经很那了),加密的密码当中会使用Blowfish,还会添加随机的salt拼合到密码当中。导致每次计算出来的密码都是随机的。(很想给大家科学的解释一下,无奈笔者数学水平真的不行,这个加密逻辑还要多次迭代挺复杂的)

如何进行用户验证?

在wordpress当中程序使用wp_hash_password()函数进行密码验证。

wp_hash_password()
我们看到它使用了class-phpass.php这个类。
当然即便密码生成方式很复杂,验证还是没有问题的,首先我们就需要在wp-includes文件夹当中找到wordpress用的类,因为这个类被wordpress稍微修改过,所以为了正确连接到wordpress数据库进行验证我们直接复制这个类,当然如果你用于自己的数据库加密也可以直接从composer上安装。

用法也比较简单

phpass

引入phpass文件,(这里我改了名字,wordpress当中的名字是class-phpass.php)和wordpress当中wp_hash_password()函数的写法类似就可以了。

$wp_hasher=new PasswordHash(8, TRUE);
$checkPassword=$wp_hasher->CheckPassword($password,$db_password);

先实例化这个类,实例化的时候其中参数8是迭代八次,wordpress默认就是让密码迭代8次,后面的true代表的是这个密码是否是可移植的,如果不能移植我们的程序也就不能对wordpress的密码进行验证了。所以这里设置和wordpress的设置一样就好。

下面的checkPassword()这个函数接受两个参数,$password是我从post里得到的用户输入的密码,$db_password是我从数据库里直接抽取出来的密码,让这两个密码进行比对,组后可以返回true或者false。这样就可以对用户进行验证了。

总结

基于wordpress开发自己的第三方应用,或者对wordpress进行整合的关键就是用户验证方面的内容。这里只要合理使用phpass类就可以解决用户验证的问题。

相关文章

  • wordpress的用户验证以及密码加密——phpass

    wordpress作为一款博客型的CMS可以为很多小型信息服务的网站提供支持,通过wordpress我们可以快速搭...

  • thinkphp 后台登陆密码加密传入密钥

    后台登陆密码加密验证设置: 相关函数: /*** 对用户的密码进行加密* @param $password* @p...

  • RSA加密解密样例

    场景:当未启用HTTPS时,用户的登录密码,以及当用户修改密码时,密码在网络中需要加密传输。 一、交互逻辑 上图中...

  • Google Cloud SSH 连接配置

    设置当前用户及root用户的密码 在本地生成私钥和公钥 复制公钥及导入公钥 复制公钥 导入公钥 添加密码验证登陆 ...

  • 12. 使用mysql验证用户名和密码

    使用mysql验证用户名和密码 本次的验证将采用不加密密码模式来完成。本次需要用到如下两台服务器: 1. 【cas...

  • day09-用户管理-笔记

    Day10-用户管理 导读 今日内容1.为用户添加密码为新用户添加密码为用户变更密码密码怎么才算复杂小结2.用户的...

  • (转载)HTTP AUTH验证

    何为http auth? http auth是一种基础的用户验证,原理是将用户名:密码base64加密后放在htt...

  • 15-短信验证码SDK使用以及用户注册

    一、短信SDK验证码验证流程简介 用户填写完用户名以及密码之后,就可以进行短信验证。由于邮箱验证比较繁琐,一般都采...

  • day9-用户和组(2)

    密码 1. 为新用户添加密码(只有root才能执行) 交互式添加密码 非交互式添加密码 通过脚本,批量添加用户 2...

  • APP登录Token

    在计算机身份认证中是令牌(临时)的意思。 APP登录的时候发送加密的用户名和密码到服务器,服务器验证用户名和密码,...

网友评论

本文标题:wordpress的用户验证以及密码加密——phpass

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