use*_*145 0 python encode md5 object
我的代码:
for chars in chain(ALC, product(ALC, repeat=2), product(ALC, repeat=3)):
a = hashlib.md5()
a.update(chars.encode('utf-8'))
print(''.join(chars))
print(a.hexdigest())
Run Code Online (Sandbox Code Playgroud)
它抛出:
Traceback (most recent call last):
File "pyCrack.py", line 18, in <module>
a.update(chars.encode('utf-8'))
AttributeError: 'tuple' object has no attribute 'encode'
Run Code Online (Sandbox Code Playgroud)
完整输出:http : //pastebin.com/p1rEcn9H tring转到“ aa”后,似乎引发了错误。我将如何解决这个问题?
您chain在一起使用的是异类,这一定是引起头痛的原因。
大概ALC是一个字符串,因此chain首先生成该字符串中的所有字符。当它移至时product(ALC, repeat=2),它开始产生tuples,因为这是这样product工作的。
只需从您的chain调用中产生同质类型(即始终产生元组,join在需要字符串时对其进行注释),就可以消除头痛。
for chars in chain(*[product(ALC, repeat=n) for n in range(1,4)]):
...
a.update(''.join(chars).encode('utf-8'))
Run Code Online (Sandbox Code Playgroud)