位置: 编程技术 - 正文

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 对数组进行排序详解及实例代码

  • 电子税务局能不能申报个税
  • 企业为员工代扣代缴个人所得税分录
  • 税控财务软件装什么系统
  • 财税通财务软件如何调整凭证间距
  • 电子税务局怎么查进项发票明细
  • 食用油交不交消费税
  • 自产自用应税消费品的消费税,其纳税环节
  • 应收账款科目怎么写
  • 其他公司归还货款会计分录
  • 半成品转成品会计分录
  • 冲回多提所得税
  • 不动产拍卖税费怎么计算
  • 会务费发票税点是多少
  • 2018年一般纳税人转小规模
  • 一般纳税人企业所得税政策最新2023
  • 开通税种需要带发票吗
  • 医院行业类别怎样填写
  • 发票认证信息怎么填
  • 没有对公账户怎么办
  • 进口货物如何缴增值税
  • 什么叫做区分
  • 华为鸿蒙怎么打开5g
  • win10错误代码0xc0000001
  • php string
  • 增值税出口服务包括什么
  • php options
  • 房产增值税计算公式2022最新
  • php生成颜色面板
  • 计算机视觉姿势评估英语
  • 前端 组件化
  • 个体经营所得税申报表a
  • 企业现金支付的范围
  • 员工的交通费发票可以报销嘛
  • 所得税的应税所得额
  • 百旺金赋怎么开红字发票
  • 发票含税和不含税的区别
  • 教育行业税收优惠政策2022
  • 预付房租的账务处理
  • 单位买理财产品怎么买
  • 运输费属于生产成本还是制造费用
  • 存货发出的计价方式有哪些
  • 生产部的管理人员算什么费用
  • 小规模纳税人出租不动产优惠政策
  • 税控技术维护费普通发票可以抵扣吗
  • 扣除工程款说明
  • 税务监制章验证无效
  • 票据行为为什么不能撤销
  • 收取客户好处算违法吗
  • 4s店出售试驾车的增值税是多少
  • 参展企业收到展览费用
  • 资本成本率是指企业用资费用与有效筹资额之间的比率
  • 经营活动产生的现金流量净额越大越好吗
  • 非流动性资产有
  • 预付账款无法取得发票如何处理
  • 新增注册资金
  • mysql5.7.29安装
  • wp程序
  • bootcamp安装windows一直小白杠
  • windows8无线网络选项消失不见
  • win7 64位系统只有搜狗浏览器可以打开网页其他浏览器打不开的故障原因及解决方法
  • win10系统自带杀毒软件
  • 解决的英文
  • unity shader
  • Linux中scp命令获取远程文件的方法
  • 用python编写登录程序
  • our与my的区别
  • perl匹配空行
  • vue仿知乎
  • 选择照片的快捷键
  • javascript例题
  • shell命令是干嘛的
  • python排列代码
  • 使用jQuery操作HTML的table表格的实例解析
  • cocos2dx 4.0
  • js类的静态属性
  • jqueryw3c
  • 国家税务总局全国增值税查询
  • 甘肃省契税征收标准
  • 广东省社保缴费基数
  • 山东地税app
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设