背景CTF有个特别狗,也特别烦的东西,就是MD5截断验证,今天我就遇到了.正文嗯,举个栗子啥意思呢?就是说,验证明文(Code)+随机字符串(fTyHgZII)在md5加密之后截取前六位等于b77333来,看效果注释有了,按题目需求,直接改代码import hashlibaddStr = ‘lll’ #加起来的字符串knowMd5 = ‘d3b6da’ #知
背景
C++TF有个特别狗,也特别烦的东西,就是md5截断验证,今天我就遇到了.
正文
嗯,举个栗子
啥意思呢?就是说,验证明文(Code)+随机字符串(fTyHgZII)在MD5加密之后截取前六位等于b77333
来,看效果
注释有了,按题目需求,直接改
代码
import hashlib
addStr = ‘lll’ #加起来的字符串
knowMd5 = ‘d3b6da’ #知道的md5
dict = ‘abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ’
def md5(text):
return hashlib.md5(str(text).encode(‘utf-8’)).hexdigest()
for i in dict:
for j in dict:
for k in dict:
for l in dict:
x = i + k + j + l
b = x + addStr
codeMd5 = md5(b)
if codeMd5[:6] == knowMd5: #这里的6,是题目里的前几位
print(x)
文由http://www.qisafe.NET/?p=253