根据题目提示需要暴力破解,这里有一个坑
就是如果直接将4D1FAE0B转10进制,也可以得到一个时间戳,1293921803
转换为日期的话为:2011-01-02 06:43:23
这个是不对的!
使用暴力破解的话看位数应该就是CRC32破解,使用脚本解密:
- import zlib
- def crc32(st):
- crc = zlib.crc32(st.encode('utf-8'))
- if crc > 0:
- return "%x" % (crc & 0xffffffff)
- else:
- return "%x" % (crc & 0xffffffff)
- year = [str(i) for i in range(1000,3000)]
- month = [str(i) if i>9 else (str(0)+str(i)) for i in range(1,13) ]
- day = [str(i) if i>9 else (str(0)+str(i)) for i in range(1,32) ]
- realDate = '4D1FAE0B'.lower()
- import itertools
- for item in itertools.product(year,month,day):
- date = ''.join(item)
- if crc32(date) == realDate:
- print(date)
复制代码 运行得到结果:
题目地址:https://www.bugku.com/ctfexercise-competition-219.html
|