验证码是否与缓存中一致时,使用了 hash_equals 方法:

hash_equals($verifyData['code'], $request->verification_code)

hash_equals 是可防止时序攻击的字符串比较,那么什么是时序攻击呢?比如这段代码我们使用

$verifyData['code'] == $request->verification_code

进行比较,那么两个字符串是从第一位开始逐一进行比较的,发现不同就立即返回 false,那么通过计算返回的速度就知道了大概是哪一位开始不同的,这样就实现了电影中经常出现的按位破解密码的场景。而使用 hash_equals 比较两个字符串,无论字符串是否相等,函数的时间消耗是恒定的,这样可以有效的防止时序攻击。

最新文章

  1. 干货分享:SQLSERVER使用裸设备
  2. C# Azure 存储-分布式缓存Redis在session中的配置
  3. unity开发相关环境(vs、MonoDevelop)windows平台编码问题
  4. Web开发中20个很有用的CSS库
  5. hadoop-2.2.0 的编译安装及HA配置
  6. [BZOJ 3209]花神的数论题
  7. wdlinux 一键安装
  8. (转)maven eclipse debug
  9. Excel每隔两行自动求和一次怎么操作?
  10. textview点击后selector的pressed无效果
  11. BZOJ 2553 禁忌
  12. iOS崩溃报告获取二
  13. res://ieframe.dll/acr_error.htm 纯手动解决方法
  14. Web性能优化工具WebPageTest(一)——总览与配置
  15. AI CV 会议2018
  16. java面试记录
  17. 64位Win7下Asp.net项目连接Oracle时报ORA-6413:连线未打开异常
  18. python 生成图形验证码
  19. 解决fastDFS客户端连接超时问题
  20. java使用jxl,poi解析excel文件

热门文章

  1. JUC-ThreadPool线程池
  2. ubuntu 报错 Unable to locate package
  3. 在docker上部署centos
  4. [CCPC2019 哈尔滨] L. LRU Algorithm - 哈希
  5. codis安装以及启动
  6. Vue中父组件向子组件echarts传值问题
  7. python之路之考试题目
  8. 题解【洛谷P4588】[TJOI2018]数学计算
  9. 题解【UVA12003】Array Transformer
  10. hdu 1045 Fire Net(二分图)