题目
来自南京邮电大学网络攻防训练平台
python大法好!
这里有一段丢失的md5密文
e9032???da???08????911513?0???a2
要求你还原出他并且加上nctf{}提交
已知线索 明文为: TASC?O3RJMV?WDJKX?ZM
分析
知道部分明文,并且明文缺失部分不多,所以决定暴力破解。
接下来就是撸代码~~~
import hashlib,re
mess1 = 'TASC'
mess2 = 'O3RJMV'
mess3 = 'WDJKX'
mess4 = 'ZM'
list_Alpha_Bet='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
#遍历明文中缺少的3位:
for i in range(36):
for j in range(36):
for x in range(36):
message = mess1 + list_Alpha_Bet[i] + mess2 + list_Alpha_Bet[j] + mess3 + list_Alpha_Bet[x] + mess4
#MD5转换+正则匹配
if re.match(r'e9032[0-9a-z]{3}da[0-9a-z]{3}08[0-9a-z]{4}911513[0-9a-z]{1}0[0-9a-z]{3}a2',hashlib.md5(message.encode('utf-8')).hexdigest()):
print(hashlib.md5(message.encode('utf-8')).hexdigest())
最后得到结果:
搞定啦!