分享主题:linux,nginx,php,mysql

php防止旁路攻击,hash_equals防侧信道时序攻击,hash_equals用户输入放在哪个参数

php7 0评论 现在加入小程序俱乐部QQ群:483987340

在开发程序,
有下面的一些场景:
1) 判断用户输入的密码是否相等
2) 对传输数据进行解密

通常会使用比较符 == 或者 ===
进行判断比较,
由于比较符是逐位比较,
攻击者会通过比较时间来进行破解密码或加密数据,
这种方式称为旁路攻击或者时序攻击。

php hash_equals防时序攻击

php为了防止这种攻击方式,
5.6版本后推出了hash_equals()函数,
用来判断两个字符串是否相等,
并且不管它们是否相等函数执行时间都是一样的。

hash_equals ( string $known_string , string $user_string ) : bool
Compares two strings using the same time whether they're equal or not.

在实际开发中,
最好把用户输入或者用户发送过来的信息,
放在hash_equals的第二个参数里。

var_dump(hash_equals(1, 1));
// fales;

var_dump(hash_equals('1', '1'));
//true;

猛击这里
观看子恒老师《php开发微信小程序》系列视频
了解实现过程和下载相关源代码

声明:本文仅供交流学习 , 版权归属原作者,部分文章未能及时与原作者取得联系,若来源标注错误或侵犯到您的权益烦请告知QQ:58842997,我们会及时删除。
秦子恒公众号

来源:秦子恒博客,欢迎转载分享,请保留出处

php防止旁路攻击,hash_equals防侧信道时序攻击,hash_equals用户输入放在哪个参数链接:https://www.qinziheng.com/php7/8906.htm

现在就加入微信开发QQ群2:483987340,跟同行探讨微信公众平台开发。群满就关闭,你得等到下一个群开通才能加入……

喜欢 (0)