【BUUCTF】CRYPTO-刷题记录-丢失的MD5
题目描述

解题步骤
下载附件,得到:
1 | import hashlib |
从代码来看,这是一个 CTF 中的 MD5 碰撞/爆破题。目标是:
- 在字符串
'TASC' + chr(i) + 'O3RJMV' + chr(j) + 'WDJKX' + chr(k) + 'ZM'中, - 爆破三个可打印字符
i,j,k(ASCII 32~126), - 使得其 MD5 哈希值中包含子串:
e9032、da、911513, - 找到后输出该 MD5。
注意:
原始代码存在 Python 2 vs Python 3 兼容性问题:m.update('TASC'+chr(i)+'O3RJMV'+chr(j)+'WDJKX'+chr(k)+'ZM')
在 Python 2 中,字符串是字节串,默认可以传给 hashlib.md5()。
但在 Python 3 中:
hashlib.md5()的输入必须是 bytes 类型- 字符串是 Unicode,不能直接拼接
chr()和传入
此外,print des 是 Python 2 语法。
1 | import hashlib |
1 | Found! Plaintext: TASCJO3RJMVKWDJKXLZM |
flag{e9032994dabac08080091151380478a2}
就是正确的结果了
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 末心的小博客!










