最安全的PHP密码加密方法
在PHP开发过程中,很多人PHP密码加密都是用的md5和sha1(包括sha256…),但不知道,随着技术进步和计算机硬件的提升(集群、分布式、云计算),破解者可以快速使用“暴力”(彩虹表)方式来寻找密码加密后散列码所对应的原始数据。
问:以上问题,对于现在的PHP开发者来说,我们应该怎么办?
答:有空大家不妨去看一下:PHP“密码散列安全”问题与解决方法
最安全的PHP密码加密方法:PHP官方自带的密码哈希函数 password_hash()
常用的MD5、SHA1、SHA256哈希算法,是面向快速、高效进行哈希处理而设计的。随着技术进步和计算机硬件的提升,如今强大的计算机很容易破解这种算法。也就是说,不要用MD5、SHA1、SHA256这种哈希方法加密密码了,不太安全。
还好,PHP内置了密码哈希函数password_hash,使用这个方法,PHP会升级底层的算法,达到如今的安全标准水平。
注意:PHP 5.5 之后引入 Password hashing API 用于创建和校验哈希密码,它属于内核自带,无需进行任何扩展安装和配置。
函数具体怎么用?我就不多说了,请大家自行查手册,我简单给大家解释一下:为什么建议大家用password_hash()函数?
password_hash()会随机生成“盐” 。
password_hash()加密后的值包括了“随机盐”+“密码散列“组合的值。当然生成这个值是通过了一定算法的,不要问为什么?
数据库只需要一个字段就可以存取“随机盐”+“密码散列“值。我以前开发项目,为了保证不同用户用不同的盐,我数据库还用了两个字段,一个存密码散列值,另一个存盐的值。
密码验证简单,只需要用password_verify()函数验证即可!password_hash() 加密用法示例:(推荐)
<?php /** - 我们想要使用默认算法散列密码 - 当前是 BCRYPT 算法,并会产生 60 个字符的结果。 - 据说bcrypt算法永不过时。 - - 请注意,随时间推移,默认算法可能会有变化, - 所以需要储存的空间能够超过 60 字(255字不错) */ echo password_hash("rasmuslerdorf", PASSWORD_DEFAULT); ?>
以上例程的输出类似于: $2y$10$.vGA1O9wmRjrwAVXD98HNOgsNpDczlqm3Jq7KnEd1rVAGv3Fykk1a
加密后的散列值存数据库
这样我们可以直接把上面加密后的值存入数据库,只需要一个字段。
password_verify() 验证密码是否和散列值匹配
用法示例:
<?php // 想知道以下字符从哪里来,可参见 password_hash() 的例子 $hash = '$2y$07$BCryptRequires22Chrcte/VlQH0piJtjXl.0t1XkA8pw9dMXTpOq'; if (password_verify('rasmuslerdorf', $hash)) { echo '密码正确'; } else { echo '密码错误'; } ?>
可能很多人不知道,password_hash() 这个函数,它的前身其实就是phpass,phpass是一个开源类库,它可以让我们更方便使用bcrypt加密算法。
-
MC为何是应用最广泛的缓存组件?
众所周知,用户体验可以说是互联网企业最看重的指标,而在用户体验中,请求响应速度首当其冲。因此互联网系统对性能的追求是永无止境的。性... 1157 0 24-05-24 -
2017年厚大司法考试119必背
2017年厚大司考119必背三国卷——殷敏.pdf2017年厚大司考119必背刑法卷——乐毅.pdf2017年厚大司考119必背刑法卷——蔡雅奇.pdf2017年厚大... 932 0 24-08-19 -
移动端调试神器vconsole
在html文件中引入vconsole.log,然后把下面的js复制进去<script> var vConsole = new VConsole();</script> 436 0 21-06-02 -
口红机源码附视频教程
口红机是微擎系统中的一个应用模块,所以安装口红机前要安装微擎系统服务器要求:linux7x 安装宝塔搭建环境Nginx 1.18.0 PHP-5.6 My... 880 0 24-06-03 -
600个小霸王-红白机-nes游戏精选-含无敌版-含58合1等合集游戏
七宝奇谋.nes三只小猪.nes三国志1-中原之霸者.NES三国志2.nes三国志4.nes三国志中原霸者.NES三国志英杰传.nes三目童子.nes三目童子无敌.nes... 860 0 24-11-17 -
云计算在电子商务和零售业中的优势
什么是云?“云”是指提供计算服务,包括服务器、存储、数据库、网络、软件等。通过互联网提供创新加速、资源灵活性和规模经济。云计算在电... 915 0 24-04-24 -
remove - 连头发丝都能抠下娄的网站
一个连头发丝都能抠下来的抠图网站。 这个网站只有一个功能,就是抠图,并且给抠出来的图像添加背景。除此之外,就没有其他功能了! 但是,这个网站的抠图效果真的是,很让人惊喜,连头发丝都能抠下来,丝毫不拖泥带水! 1036 0 21-12-07 -
程序员的思维修炼 开发认知潜能的九堂课
做一名程序员,就意味着要不断地学习,不但要学习新技术,还要学习怎么解决应用领域的问题,要了解用户社区的奇思妙想,要适应同事的怪癖,... 745 0 24-05-24
发表我的评论
- 这篇文章还没有收到评论,赶紧来抢沙发吧~