PHP实现基于PBKDF2标准的password_hash和password_verify函数是怎样的
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,PHP实现基于PBKDF2标准的password_hash和password_verify函数是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以
千家信息网最后更新 2025年12月03日PHP实现基于PBKDF2标准的password_hash和password_verify函数是怎样的
PHP实现基于PBKDF2标准的password_hash和password_verify函数是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
最近国家对网络安全要求很严格,我们产品的合作伙伴要求我们使用PBKDF2标准来存储密码。由于对这个标准不熟悉,于是我做了点功课。
一个基本的常识,用户的密码不能明文存储,不然,一旦黑客获取到了数据库信息,密码就直接泄露了。
升级一点,密码直接使用sha1或者更高安全的sha2算法,生成散列值,存入数据库,大部分的密码存储就是这样设计的。这样是否就足够安全了呢?
不是,因为黑客依然可以使用彩虹表和暴力破解的方式破解密码。
要解决这两个问题,就要做到以下两点:
1. 密码生成过程中加入随机salt,做到同一个密码每次hash值都不同,使彩虹表失效。
2. 加密算法的运行速度相对比较慢,这样会使黑客的暴力破解成本增加。
目前主流的密码存储算法有bcrypt和PBKDF2等,PHP从5.5开始加入了password_hash和password_verify函数,内置支持了bcrypt算法,如果想加强密码存储的安全性,对算法没有特别要求,可以直接使用。
然而对于需要使用PBKDF2标准处理加密存储,就没有现成的函数可以使用了,不过PHP在5.5开始加入了hash_pbkdf2函数,于是使用这个函数我实现了基于PBKDF2标准的password_hash以及password_verify函数。代码如下:
function password_hash_pbkdf2($password){ $iterations=1000; $length=30; $salt = openssl_random_pseudo_bytes(8); $salt_encode=base64_encode($salt); $hash = hash_pbkdf2("sha256", $password, $salt, $iterations, $length); return $hash.$salt_encode;}function password_verify_pbkdf2($password,$hash){ $iterations=1000; $length=30; $passhash=substr($hash,0,$length); $salt=base64_decode(substr($hash,$length)); $passhash3=hash_pbkdf2("sha256", $password, $salt, $iterations, $length); if($passhash==$passhash3){ return true; } return false;}看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。
密码
函数
存储
标准
算法
安全
黑客
数据
数据库
暴力
彩虹
加密
帮助
支持
生成
不同
清楚
两个
主流
代码
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库大型设计
戴尔服务器管理口默认
如何让excel变数据库
独立服务器和云服务器的区别
计算机网络技术是
网络安全法第22条第3款
医院网络安全等级保护建设
网络安全新边疆
宜兴运营软件开发咨询热线
高二会考电脑网络技术操作
品牌网络技术服务介绍
初中毕业去学it软件开发好不好
初中学生网络安全教育心得体会
佛山安卓软件开发电话
服务器丢包严重延时正常
云服务器安全组规则在哪里看
腾讯云服务器设置管理员
我的世界英文服务器名字
数据库备份触发器
明日之后主播服务器配置
软件开发程序员的工作标准
如何让excel变数据库
卡巴斯基 服务器版
v7数据库安装失败怎么回事
软件无法访问图形服务器
如何防止服务器被攻击
app软件开发八戒
数据库教务处分配教师系统
鲲鹏独立软件开发商
数据库删除是什么