位置: 编程技术 - 正文

PHP中的密码加密的解决方案总结(php代码加密方式)

编辑:rootadmin

推荐整理分享PHP中的密码加密的解决方案总结(php代码加密方式),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php 密码加密,php代码加密方式,php中的密码加密是什么,php密码加密技术phpass,php密码加密技术phpass,php密码加密技术phpass,php加密zend,php 密码加密,内容如对您有帮助,希望把文章链接给更多的朋友!

层出不穷的类似事件对用户会造成巨大的影响,因为人们往往习惯在不同网站使用相同的密码,一家“暴库”,全部遭殃

一般的解决方案。

1、将明文密码做单向hash

2、密码+salt后做单向hash,PHP内置了hash()函数,你只需要将加密方式传给hash()函数就好了。你可以直接指明sha, sha, md5, sha1等加密方式

单向哈希算法有一个特性,无法通过哈希后的摘要(digest)恢复原始数据,常用的单向哈希算法包括SHA-,SHA-1,MD5等。例如,对密码“passwordhunter”进 行SHA-哈希后的摘要(digest)如下:“bbedd2cc4bfbbec7eaefa9e0ba9bc2dc”

注意:攻击者可以将所有密码的常见组合进行单向哈希,得到一个摘要组合,然后与数据库中的摘要进行比对即可获得对应的密码。这个摘要组合也被称为rainbow table。更糟糕的是,一个攻击者只要建立上述的rainbow table,可以匹配所有的密码数据库。仍然等同于一家“暴库”,全部遭殃

比较好的解决方案

Bcrypt

PHP中的密码加密的解决方案总结(php代码加密方式)

Bcrypt 其实就是Blowfish和crypt()函数的结合,我们这里通过CRYPT_BLOWFISH判断Blowfish是否可用,然后像上面一样生成一个盐值,不过这里需要注意的是,crypt()的盐值必须以2a2a或者2y2y开头,详细资料可以参考下面的链接:

Hashing API

Password Hashing API是PHP 5.5之后才有的新特性,它主要是提供下面几个函数供我们使用

password_hash() ? 对密码加密.password_verify() ? 验证已经加密的密码,检验其hash字串是否一致.password_needs_rehash() ? 给密码重新加密.password_get_info() ? 返回加密算法的名称和一些相关信息.

虽然说crypt()函数在使用上已足够,但是password_hash()不仅可以使我们的代码更加简短,而且还在安全方面给了我们更好的保障,所以,现在PHP的官方都是推荐这种方式来加密用户的密码,很多流行的框架比如Laravel就是用的这种加密方式

PASSWORD_DEFAULT目前使用的就是Bcrypt,最好的还是Password Hashing API。这里需要注意的是,如果你代码使用的都是PASSWORD_DEFAULT加密方式,那么在数据库的表中,password字段就得设置超过个字符长度,你也可以使用PASSWORD_BCRYPT,这个时候,加密后字串总是个字符长度。

这里使用password_hash()你完全可以不提供盐值(salt)和 消耗值 (cost),你可以将后者理解为一种性能的消耗值,cost越大,加密算法越复杂,消耗的内存也就越大。当然,如果你需要指定对应的盐值和消耗值,你可以这样写

密码加密过后,我们需要对密码进行验证,以此来判断用户输入的密码是否正确

直接使用password_verify就可以对我们之前加密过的字符串(存在数据库中)进行验证了

如果有时候我们需要更改我们的加密方式,如某一天我们突然想更换一下盐值或者提高一下消耗值,我们这时候就要使用到password_needs_rehash()函数了

只有这样,PHP的Password Hashing API才会知道我们重现更换了加密方式,这样的主要目的就是为了后面的密码验证,password_get_info(),这个函数一般可以看到下面三个信息

algo ? 算法实例algoName ? 算法名字options ? 加密时候的可选参数

标签: php代码加密方式

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

上一篇:PHP 以POST方式提交XML、获取XML,解析XML详解及实例(php如何post)

下一篇:php array_multisort 对数组进行排序详解及实例代码

  • 资金账簿印花税怎么算
  • 增值税发票开票软件金税盘
  • 存货核算的内容是什么
  • 支付职工医疗保险怎么查
  • 出租固定资产的折旧额是什么意思
  • 钢材贸易公司是做什么的
  • 人力资源公司开办条件
  • 购进库存商品到销售全部分录
  • 搬家费账务处理
  • 租赁合同交税一般交多少钱
  • 本期已认证但不想抵扣申报表怎么填写
  • 安装过程中材料和工资
  • 公司发的奖金可以直接公司账户转账给员工吗?
  • 新税法下广告费计税依据
  • 房地产母公司将其土地变更到其全资子公司
  • 季报所得税可以预交吗
  • 取得以前年度审计报告应归入阶段底稿
  • 维修属于劳务还是劳务
  • 公司充加油卡发票税额为0 怎么入账
  • 纳税人可以是自然人吗
  • 购买员工宿舍床上用品怎么入账
  • win10壁纸图片怎么删除
  • windows11家庭版本地策略组
  • win10锁屏界面windows聚焦什么意思
  • 资产处置收益期末有余额吗
  • 工业增加值计算公式是什么
  • 附加税异地预缴如何申报
  • 固定资产成本中的相关税费
  • 海运发票模板
  • 集团与子公司资产的关系
  • php自动载入自定义函数文件
  • 毛利率为负也可以投资吗
  • vue中v-model
  • 工业企业制造费用占比
  • php curl_init
  • 数据结构的单链表
  • 学会这两种方式英语
  • 基于VGGNet乳腺超声图像数据集分析
  • 股权转让怎么做凭证分录
  • 税控技术服务费280元怎么抵减申报不成功
  • 兼职人员的劳务费标准
  • 帝国cms是基于什么的
  • 企业注销亏损怎么处理
  • php如何解析json串内的数组
  • 驱动开发做得长久吗
  • 资质平移后以前的工程怎么办
  • 空调能直接用水清洗不?
  • 折旧费和折旧额的区别
  • 企业间借款利息收入
  • 小额收据入账规则最新
  • 企业接管的方式有
  • 银行承兑到期后未兑付
  • 补缴税款需要交滞纳金吗
  • 补交增值税税款怎么做账
  • 无形资产原值变更 摊销
  • 公司给公司的工会拨款
  • sql server使用教程
  • sql2000数据库怎么使用
  • Win7 64位旗舰版系统中实现照片的批量重命名
  • 不接入局域网更新
  • server core安装完成后按什么进行登录
  • 虚拟机怎么安装VMware Tools
  • acer笔记本重装系统教程
  • url是什么格式的文件怎么打开
  • 定制xp系统
  • win10 mobile 1709
  • linux硬盘io
  • g8a1
  • android get
  • JavaScript window.document的属性、方法和事件小结
  • 简单谈谈你对公安工作的认识
  • 街道税务所职责和任务
  • 出口退税申报时间是每月15号吗
  • 广西地方税务局2018年1号公告
  • 陕西地方水利建设基金减免政策2023
  • 重大税务案件审理办法51号令
  • 国家税务总局河北地税局
  • 大理市国税局
  • 误餐费报销管理办法
  • 一般纳税人什么意思
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设