企业网站建设后期维护费用,深圳市网站建设科技,鲜花网站模板下载,青岛网络推广教程题目描述#xff1a;
我们得到了一串神秘字符串#xff1a;TASC?O3RJMV?WDJKX?ZM,问号部分是未知大写字母#xff0c;为了确定这个神秘字符串#xff0c;我们通过了其他途径获得了这个字串的32位MD5码。但是我们获得它的32位MD5码也是残缺不全#xff0c;E903???4D… 题目描述
我们得到了一串神秘字符串TASC?O3RJMV?WDJKX?ZM,问号部分是未知大写字母为了确定这个神秘字符串我们通过了其他途径获得了这个字串的32位MD5码。但是我们获得它的32位MD5码也是残缺不全E903???4DAB???08???51?80??8A?,请猜出神秘字符串的原本模样并且提交这个字串的32位MD5码作为答案。 注意得到的 flag 请包上 flag{} 提交
解题思路
1、仔细阅读题目明白我们需要还原完整的MD5码作为flag提交。
2、缺失的字符为大写字母可以通过枚举来筛选出正确的MD5码。
3、通过使用python写出代码来猜出神秘字符串的原本模样代码逻辑是将TASC?O3RJMV?WDJKX?ZM这串字符串中的问好使用字母从AAAAA代替然后转换为32位的MD5将得出的MD5前4位与E903比配如果相同则输出直到5个问好最后都是ZZZZZ
设计程序
import hashlibmystery_md5 E903???4DAB????08?????51?80??8A?
for i in range(65, 91):for j in range(65, 91):for k in range(65, 91):#print(fTASC{chr(i)}O3RJMV{chr(j)}WDJKX{chr(k)}ZMd, end;)# 计算候选字符串的MD5哈希值plaintext fTASC{chr(i)}O3RJMV{chr(j)}WDJKX{chr(k)}ZMmd5_hash hashlib.md5(plaintext.encode(utf8)).hexdigest().upper()#注意大小写#print(md5_hash[:4])# 比较MD5码的部分if md5_hash[:4] mystery_md5[:4]:print(plaintext)print(md5_hash)
两秒就出来了 flag{E9032994DABAC08080091151380478A2}