作者简介:

       姜海强:闷骚码农,互联网行业摸爬滚打数余载,先后担任中国体育直播TV主程、网信集团先锋支付架构师、奇虎360服务器端资深开发。热爱技术,喜欢分享,热衷领域:PHP/Golang语言、面向对象设计模式、Redis、Yaf、Yii2、微服务等。

视频课程

yaf+yar微服务-腾讯课堂
yaf+yar微服务-51CTO学院
CSDN学院

Github

个人主页
swoole-boot
roach
roach-orm

QQ群:

姜海强的QQ群

公众号:

360tryst公众号

密码散列算法

密码散列算法是password扩展,他是PHP核心的一部分,不需要单独安装

这个库是专门对密码做hash运算与校验的。

大家都知道,用户注册设置的密码需要存储在数据库,很多老项目都是把密码就行md5运算然后存储到数据库表中,但是由于现在计算机硬件性能提升,md5算法已经不再安全,那么应该用什么算法呢?

对密码进行hash运算并校验

  1. <?php
  2. //对密码进行hash运算,算法采用PASSWORD_BCRYPT
  3. $hash = password_hash('jhq23123', PASSWORD_BCRYPT);
  4. //校验密码hash值
  5. $verifyResult = password_verify('jhq23123', $hash);
  6. var_dump($hash, $verifyResult);

以上例程运行结果

  1. string(60) "$2y$10$wqw6FoTl8sYk8r/lvCkvo.nGBRg42OQNFD2BLPt9nfkUnsr7GKgR2"
  2. bool(true)

需要注意的是,每次运行产生的hash值是不一样的。

看到这里,我们可以发现,我们如果把密码的hash值存储在数据库中,破解的难度是不是很难了,这也是PHP官方推荐大家使用的密码加密算法。

QQ群:

姜海强的QQ群

公众号:

360tryst公众号