md5绕过(Hash比较缺陷)


if (md5($Username) == md5($password)) {$logined = true;}
题目大意是要输入一个字符串和数字类型,并且他们的md5值相等,就可以成功执行下一步语句
介绍一批md5开头是0e的字符串 上文提到过,0e在比较的时候会将其视作为科学计数法,所以无论0e后面是什么,0的多少次方还是0。

md5绕过(Hash比较缺陷)_第1张图片

QNKCDZO
0e830400451993494058024219903391

s878926199a
0e545993274517709034328855841020
  
s155964671a
0e342768416822451524974117254469
  
s214587387a
0e848240448830537924465865611904
  
s214587387a
0e848240448830537924465865611904
  
s878926199a
0e545993274517709034328855841020
  
s1091221200a
0e940624217856561557816327384675
  


写一个脚本自己验证;

import hashlib
m=hashlib.md5()
password=""
password=input(password)
password=password.encode('ascii')
m.update(password)
print(m.hexdigest())



你可能感兴趣的:(md5绕过(Hash比较缺陷))