最安全的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加密算法。
-
人人视频_专注于海外影视剧集播放
人人视频,一款致力于提供卓越观影体验的视频应用,专注于海外影视剧的播放与分享。它汇聚了全球热门电视剧、电影、动漫、纪录片等丰富... 821 0 25-06-09 -
猫眼电影(后端node)
猫眼电影的前端源码中,可能包括以下组件和功能:1. 首页:展示热门电影、新上映电影等信息,通常会用到轮播图、列表布局等组件。2. 电影... 889 0 24-10-26 -
2018口腔执业医师考试大纲【全】
2018年口腔执业医师《儿科学》考试大纲.doc2018年口腔执业医师《儿童口腔医学》考试大纲.doc2018年口腔执业医师《内科学》考试大纲.doc2018... 949 0 24-08-19 -
母婴商城小程序
母婴商城小程序功能点:(1)注册功能。顾客首先要注册为网上商城的用户。注册时只要填写登录用户名、密码、送系电子信箱3项信息即可。注册后... 864 0 24-10-27 -
闲鱼数据的获取与下载
今天给大家分享闲鱼的数据获取和逆向,只需要在终端输入想搜索的物品名,再输入想下载内容的页码,对应数据的csv文件便会自动命名好并创建... 1135 0 25-04-08 -
微信语音撤回不留痕迹
微信聊天中的语音功能很方便,按住说话,松开手指立即发送,但是,有时候说了一半,觉得不合适,想撤回,一松手指就发送出去了。如果对方接... 892 0 21-08-07 -
Nekogram (Nekogram X,NekoX) 猫报_国外社交软件
Nekogram(猫报)作为一款开源的第三方Telegram安卓客户端,以其卓越的性能和丰富的功能备受用户青睐。它不仅移除了Telegram中的广告,... 765 0 25-06-03 -
MC是怎么定位key的
我们在进行 Mc 架构剖析时,除了学习 Mc 的系统架构、网络模型、状态机外,还对 Mc 的 slab 分配、Hashtable、LRU 有了简单的了解... 1265 0 24-05-24
发表我的评论
- 这篇文章还没有收到评论,赶紧来抢沙发吧~