密码学之md5还原大师

我们得到了一串神秘字符串:TASC?O3RJMV?WDJKX?ZM,问号部分是未知大写字母,为了确定这个神秘字符串,我们通过了其他途径获得了这个字串的32位MD5码。但是我们获得它的32位MD5码也是残缺不全,E903???4DAB????08?????51?80??8A?,请猜出神秘字符串的原本模样,并且提交这个字串的32位MD5码作为答案。

import re
from hashlib import md5

list_uppercase = [chr(i) for i in range(65, 91)]  # 大写
# list_lowercase = [chr(i) for i in range(97, 123)]  # 小写
# list_digits = [chr(i) for i in range(48, 58)]  # 数字
for i in list_uppercase:
  for j in list_uppercase:
    for k in list_uppercase:
      key = "TASC%sO3RJMV%sWDJKX%sZM" % (i, j, k)
      sign = md5(key.encode('utf8')).hexdigest().upper()
      if re.match(r"E903.{3}4DAB.{4}08.{5}51.{1}80.{2}8A.{1}", sign, re.I):
        print(sign)
        break

flag:E9032994DABAC08080091151380478A2

你可能感兴趣的:(安全实践)