看看这可爱的题目,多做做这种水题,才能得到快感!
首先我们进入题目,开始分析代码
先来讲上面的几个函数,这样子才能更好的食用(不会云里雾里)
1.isset()函数
它是用来检测变量是否被赋值用的。
也就是说上面代码中,
if(isset($a)&&isset($b))
这个的意思是,如果变量a,b赋值则进行下一步操作
2.sha1()、md5()
它是一种加密方式,和后面的md5()一样的
(顺便说一下php弱类型问题,即php中任何以0e开头的md5都被视为相等,因为他们视为科学记数法,而0的任何次方都是0)
好了,回到题目。
核心的一句在
if($a!==$b&&sha1($a)===md5($b)){ echo $flag;
意思是如果(if)变量a不等于b,而且a的sha1密文等于b的md5密文
所以说我们需要怎么做?
sha1()和md5()都不能处理数组,也就是说如果变量a和变量b给赋的值是数组的话,sha1()和md5()都会返回false。
false=false
构造链接 url/?a=[520]&b=[1314]
你明白的。。。