首页
友链
壁纸
留言
今日热榜
更多
关于
时光
推荐
精品流量卡
Search
1
都二十多年了,你的梦为什么还没碎!
57,062 阅读
2
2022年5个好用的 BT/ 磁力链接下载工具推荐 |Windows 、安卓系统
37,217 阅读
3
nps内网穿透实现外网访问树莓派
32,390 阅读
4
实践利用宝塔建emlog个人博客-超详细【原创】
26,119 阅读
5
Typecho-Joe-Theme主题帮助文档
24,550 阅读
闲杂乱码
Python
网站源码
微信小程序
娱乐分享
Is相册
软件工具
登录
Search
标签搜索
PHP
HTML
API
Javascript
源码
JS
Vue
Github
CloudFlare
接口
函数
SQL
ASP.NET
MVC
EF
T4模板
后台管理
CDN
微信小程序
MAC
韩小韩
累计撰写
261
篇文章
累计收到
1,301
条评论
首页
栏目
闲杂乱码
Python
网站源码
微信小程序
娱乐分享
Is相册
软件工具
页面
友链
壁纸
留言
今日热榜
关于
时光
推荐
精品流量卡
搜索到
1
篇与
PHP密码
的结果
2020-09-24
最安全的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_algos — 获取可用的密码哈希算法IDpassword_get_info — 返回指定散列(hash)的相关信息password_hash — 创建密码的散列(hash)password_needs_rehash — 检测散列值是否匹配指定的选项password_verify — 验证密码是否和散列值匹配总结:可能很多人不知道,password_hash() 这个函数,它的前身其实就是phpass,phpass是一个开源类库,它可以让我们更方便使用bcrypt加密算法。最后请参考PHP官方手册:https://www.php.net/manual/zh/ref.password.phpphpass网址:http://www.openwall.com/phpass/
2020年09月24日
1,354 阅读
0 评论
0 点赞