丢失的MD5-补全代码
题目是一段代码,直接运行会报错:
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
错误原因
1、hashlib.md5() 函数要求输入的数据是字节串类型(bytes),但在代码中,'TASC'+chr(i)+'O3RJMV'+chr(j)+'WDJKX'+chr(k)+'ZM' 是一个普通的字符串(str 类型)。
2、print des 仅在Python2中合法,在 Python 3 中,应该修改为 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(('TASC' + chr(i) + 'O3RJMV' + chr(j) + 'WDJKX' + chr(k) + 'ZM').encode('utf-8'))
des = m.hexdigest()
if 'e9032' in des and 'da' in des and '911513' in des:
print(des)
运行后得到答案

浙公网安备 33010602011771号