下载后得到代码
import hashlib
for i in range(32,127):
for j in range(32,127):
for k in range(32,127):
m=hashlib.md5()
m.update('TASC'+chr(i)+'O3RJMV'+chr(j)+'WDJKX'+chr(k)+'ZM')
des=m.hexdigest()
if 'e9032' in des and 'da' in des and '911513' in des:
print des
无法运行
下面是修复后的代码:
import hashlib
for i in range(32,127):
for j in range(32,127):
for k in range(32,127):
m = hashlib.md5()
m.update(b'TASC' + bytes([i]) + b'O3RJMV' + bytes([j]) + b'WDJKX' + bytes([k]) + b'ZM')
des = m.hexdigest()
if 'e9032' in des and 'da' in des and '911513' in des:
print(des)
这里主要修复了以下问题:
1. 在Python 3中,字符串需要在前面加上`b`前缀来表示为字节字符串。因此,我们使用`b'TASC'`来表示字节字符串。
2. `chr()`函数用于将ASCII码值转换为对应的字符,但在Python 3中,字符串是Unicode编码的,所以我们不能直接使用`chr()`函数。我们使用`bytes([i])`来将整数转换为对应的字节表示。
3. `print`函数需要加上括号将内容括起来,所以我们使用`print(des)`来打印哈希值。
现在,修复后的代码应该能够运行了。它会遍历所有可打印字符的组合,对每个组合进行MD5哈希计算,并检查是否满足指定的条件。如果找到符合条件的哈希值,将其打印出来。注意,这是一个相当耗时的过程,可能需要很长时间才能找到符合条件的哈希值。
运行结果为flag{e9032994dabac08080091151380478a2}