题目

来自南京邮电大学网络攻防训练平台

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())

最后得到结果:

Md5-encode

搞定啦!