位置: 编程技术 - 正文

PHP更安全的密码加密机制Bcrypt详解(php密码修改)

编辑:rootadmin

推荐整理分享PHP更安全的密码加密机制Bcrypt详解(php密码修改),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php登录安全,php确认密码,php确认密码,php更安全的密码是多少,php安全设置,php 密码,php最安全的登录功能,php更安全的密码是多少,内容如对您有帮助,希望把文章链接给更多的朋友!

前言

我们常常为了避免在服务器受到攻击,数据库被拖库时,用户的明文密码不被泄露,一般会对密码进行单向不可逆加密——哈希。

常见的方式是:

哈希方式 加密密码 md5(‘') eadcbaabbeeffe md5(‘' . ($salt = ‘salt')) acda3c1bdd7e9af8a sha1(‘') 位密文 hash(‘sha', ‘') 位密文 hash(‘sha', ‘') 位密文

密文越长,在相同机器上,进行撞库消耗的时间越长,相对越安全。

比较常见的哈希方式是 md5 + 盐,避免用户设置简单密码,被轻松破解。

password_hash

但是,现在要推荐的是 password_hash() 函数,可以轻松对密码实现加盐加密,而且几乎不能破解。

password_hash 生成的哈希长度是 PASSWORD_BCRYPT —— 位,PASSWORD_DEFAULT —— 位 ~ 位。PASSWORD_DEFAULT 取值跟 php 版本有关系,会等于其他值,但不影响使用。

PHP更安全的密码加密机制Bcrypt详解(php密码修改)

每一次 password_hash 运行结果都不一样,因此需要使用 password_verify 函数进行验证。

password_hash 会把计算 hash 的所有参数都存储在 hash 结果中,可以使用 password_get_info 获取相关信息。

输出

注意:不包含 salt

可以看出我当前版本的 PHP 使用 PASSWORD_DEFAULT 实际是使用 PASSWORD_BCRYPT。

password_hash($password, $algo, $options) 的第三个参数 $options 支持设置至少 位的 salt。但仍然强烈推荐使用 PHP 默认生成的 salt,不要主动设置 salt。

当要更新加密算法和加密选项时,可以通过 password_needs_rehash 判断是否需要重新加密,下面的代码是一段官方示例

password_needs_rehash 可以理解为比较 $algo + $option 和 password_get_info($hash) 返回值。

password_hash 运算慢

password_hash 是出了名的运行慢,也就意味着在相同时间内,密码重试次数少,泄露风险降低。

输出

password_hash 运行一次耗时 毫秒, md5 运行 次耗时 5 毫秒。这是一个非常粗略的比较,跟运行机器有关,但也可以看出 password_hash 运行确实非常慢。

总结

标签: php密码修改

本文链接地址:https://www.jiuchutong.com/biancheng/289822.html 转载请保留说明!

上一篇:Laravel中log无法写入问题的解决(laravel 日志配置)

下一篇:PHP利用Socket获取网站的SSL证书与公钥(php socket_create)

  • 员工年终奖个税规避
  • 税收优惠政策有什么好处
  • 税控盘退费怎么做会计分录
  • 员工辞退补偿金需要交个税吗
  • 房租押金算费用吗
  • 净营业周期和营业周期
  • 库存商品月末必须结转吗
  • 专用发票不抵扣怎么做账
  • 红字信息表状态是B900071
  • 套期工具是资产还是负债
  • 银行手续费发票图片
  • 专利技术转让使用费如何做会计处理?
  • 留底的预缴税款怎么处理?
  • 销售加工费怎么做账务处理
  • 单位购入新车的发票
  • 研发部门属于哪个会计科目
  • 财务软件操作指南
  • 其他综合收益的编码
  • 库存现金清查短款会计分录
  • 建筑企业建筑业
  • 税务变更后之前的进项
  • 电信网费普通发票税率为什么是0
  • 用苹果macbook pro怎样
  • 购买所有物品都是可以退货吗
  • win11专业版和家庭中文版区别
  • el-cascader动态加载多级
  • 总公司给子公司打款 如何做凭证
  • 如何设定电脑开机密码锁
  • mysqld-nt.exe - mysqld-nt是什么进程 有什么用
  • 财政应返还额度年末有余额吗?
  • 应交增值税的会计科目怎么做
  • php实现功能
  • 购销合同印花税计算方法
  • the模板引擎
  • 购买方收到的违约金计入
  • php中的异常和错误怎么写
  • 自行建造厂房如何缴税
  • 银行汇票和银行本票的区别
  • 季度申报残保金怎么计算
  • php图像识别技术是什么
  • 电脑自学网
  • 建账的三个基本步骤
  • 小规模企业没有进项票能开发票吗
  • 资产合计是期末余额吗
  • 银行承兑到期后未兑付
  • 自产农产品加工成产品销售怎么抵扣
  • 工会账户收到经费的会计科目
  • 小企业营业外支出的内容
  • 劳务费能否作为农民工工资优先支付
  • 申报工资总额除以在职人员人数
  • 基本户转账法人会知道吗
  • mysql 常用
  • server2008开机启动项设置
  • linux常用命令sed
  • linux系统中cp命令
  • xp系统无线网络连接怎么没有
  • datadraveler
  • win10专业版怎么安装
  • linux修改服务器ip地址
  • window7激活系统
  • 优化太差
  • python supper函数
  • 焦点轮播图代码
  • 笔记本电脑没有鼠标怎么多选文件
  • [android] listView解析
  • 计算字符串的长度使用哪个函数?
  • linux 打包
  • unity ugu
  • python3.9爬取网页教程
  • jquery 菜单
  • android drawpath
  • comparable接口怎么用
  • 青岛税务局领导
  • 如何加入一带一路?
  • 社保批扣和灵活就业批扣有什么区别
  • 企业取得了哪些成绩
  • 单位医保账号怎么注销掉
  • 开票系统服务器设置
  • 湖北航天金税盘服务器地址
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设