string md5( $str, raw)
参数
- $str :需要计算的字符串
- raw :指定十六进制或二进制输出格式
返回值
计算成功,就返回MD5值;计算失败,就返回false。
1、基础使用
平时使用最多的就是「计算MD5」
实例:
echo md5('hello');
输出:
5d41402abc4b2a76b9719d911017c592
2、输出格式
raw 参数控制输出的「格式」:
- true :16个字符的「二进制格式」
- false :(默认)32个字符的十六进制格式
如果你在项目中遇到MD5「加密结果不一致」的问题,可以观察两个加密结果的长度是否相同,比如一个结果是16位,而另一个结果是32位,这种情况就可以考虑更换输出格式来解决。
实例:
var\_dump(md5('hello', true));
var\_dump(md5('hello', false));
输出:
string(16) "]A@\*�K\*v�q��Œ"
string(32) "5d41402abc4b2a76b9719d911017c592"
3、科学计数法(0e绕过)
md5() 遇到「公式」,会先「运算」,再对运算结果「计算」MD5。
由于0和任何数相乘都等于0,所以0e开头的任何数,其MD5都是相同的。
比如 md5('0e1234')
,会先运算成 md5(0)
,再计算MD5值。
补充:
0e是科学计数法,大小写等价,即 0e 和 0E 的结果相同。
科学记数法是一种记数的方法。把一个数表示成a与10的n次幂相乘的形式。
格式为:aEb=a×10^b,即a乘以10的b次幂。
实例:
echo md5(0).PHP\_EOL;
echo md5(0e123).PHP\_EOL;
echo md5(0e456).PHP\_EOL;
echo md5(0E456);
输出:
cfcd208495d565ef66e7dff9f98764da
cfcd208495d565ef66e7dff9f98764da
cfcd208495d565ef66e7dff9f98764da
cfcd208495d565ef66e7dff9f98764da
绕过思路1:遇到弱比较( md5(a)==md5(b)
)时,可以使用 0e绕过。
实例:
var_dump(md5(0e123) === md5(0e456));
var_dump(md5(0e123) == md5(0e456));
输出:
bool(true)
bool(true)
0e绕过还有一种变体:如果某个字符串的MD5值是0e开头的,在比较时,PHP也会先把它计算成 0,再参与比较。
绕过思路2:遇到若比较( md5(a)==0
),可以传入QNKCDZO等绕过。
echo md5('QNKCDZO').PHP_EOL;
var_dump(md5('QNKCDZO') == 0);
输出:
0e830400451993494058024219903391
bool(true)
一些MD5值为0e开头的字符串:
QNKCDZO => 0e830400451993494058024219903391
240610708 => 0e462097431906509019562988736854
s878926199a => 0e545993274517709034328855841020
s155964671a => 0e342768416822451524974117254469
s214587387a => 0e848240448830537924465865611904
s214587387a => 0e848240448830537924465865611904
4、数组类型(数组绕过)
md5() 不能处理数组,数组都返回null。同时会报一个Warning,不影响执行,不用管。
实例:
var\_dump(md5([1,2]));
var\_dump(md5([3,4]));
输出:
Warning: md5() expects parameter 1 to be string,
NULL
Warning: md5() expects parameter 1 to be string,
NULL
绕过思路:遇到强比较(a===b
)时,可以使用数组绕过。GET传参时,以 a[]=1&b[]=2
这种形式传递数组。
实例:
$a = array(1,2,3);
$b = array(4,5,6);
还有兄弟不知道网络安全面试可以提前刷题吗?费时一周整理的160+网络安全面试题,金九银十,做网络安全面试里的显眼包!
王岚嵚工程师面试题(附答案),只能帮兄弟们到这儿了!如果你能答对70%,找一个安全工作,问题不大。
对于有1-3年工作经验,想要跳槽的朋友来说,也是很好的温习资料!
**找作者获取【vip204888】**
【完整版领取方式在文末!!】
***93道网络安全面试题***



内容实在太多,不一一截图了
### 黑客学习资源推荐
最后给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
😝朋友们如果有需要的话,可以联系领取~
#### 1️⃣零基础入门
##### ① 学习路线
对于从来没有接触过网络安全的同学,我们帮你准备了详细的**学习成长路线图**。可以说是**最科学最系统的学习路线**,大家跟着这个大的方向学习准没问题。

##### ② 路线对应学习视频
同时每个成长路线对应的板块都有配套的视频提供:

#### 2️⃣视频配套工具&国内外网安书籍、文档
##### ① 工具

##### ② 视频

##### ③ 书籍

资源较为敏感,未展示全面,需要的最下面获取

##### ② 简历模板

**因篇幅有限,资料较为敏感仅展示部分资料,添加上方即可获取👆**