BUUCTF---还原大师(MD5)
1.题目
我们得到了一串神秘字符串:TASC?O3RJMV?WDJKX?ZM,问号部分是未知大写字母,为了确定这个神秘字符串,我们通过了其他途径获得了这个字串的32位MD5码。但是我们获得它的32位MD5码也是残缺不全,E903???4DAB????08?????51?80??8A?,请猜出神秘字符串的原本模样,并且提交这个字串的32位MD5码作为答案。 注意:得到的 flag 请包上 flag{} 提交
2.知识
MD5加密,MD5是一种hash加密,不可逆
3.解题
题目很明显出现3个?,又已知部分明文,爆破是一种好选择
编码爆破。
k = 'TASC?O3RJMV?WDJKX?ZM' #要还原的明文 for i in range(26): temp1 = k.replace('?',str(chr(65+i)),1) for j in range(26): temp2 = temp1.replace('?',chr(65+j),1) for n in range(26): temp3 = temp2.replace('?',chr(65+n),1) s = hashlib.md5(temp3.encode('utf8')).hexdigest().upper()#注意大小写 if s[:4] == 'E903': #检查元素 print (s) #输出密文
得到输出:E9032994DABAC08080091151380478A2
本文作者:TTDB
本文链接:https://www.cnblogs.com/ttdb-huu/p/18267057
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步