首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >hashlib.encode元组:元组对象在Python中没有'encode‘属性

hashlib.encode元组:元组对象在Python中没有'encode‘属性
EN

Stack Overflow用户
提问于 2014-05-16 07:13:54
回答 2查看 25.4K关注 0票数 1

我的代码:

代码语言:javascript
复制
    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())

它返回到:

代码语言:javascript
复制
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'

完整输出:http://pastebin.com/p1rEcn9H在尝试移动到"aa“之后,似乎抛出了错误。我该如何着手解决这个问题呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-16 07:24:14

您正在将异构类型chain在一起,这是一个令人头疼的原因。

假设ALC是一个字符串,所以chain首先生成字符串中的所有字符。当它转移到product(ALC, repeat=2)时,它开始生成tuples,因为这就是product的工作方式。

只需从chain调用中生成同构类型(即始终生成元组,在需要字符串时使用join),麻烦就会消失。

代码语言:javascript
复制
for chars in chain(*[product(ALC, repeat=n) for n in range(1,4)]):
    ...
    a.update(''.join(chars).encode('utf-8'))
票数 5
EN

Stack Overflow用户

发布于 2014-05-16 07:21:18

您的错误是试图将此元组转换为utf-8。尝试删除此行"a.update(chars.encode('utf-8')“

当解释器显示"' tuple‘对象没有属性'encode’意味着对象元组不支持以这种方式转换。

但是,如果您想转换所有这些内容,请在程序的第一行使用#coding: utf-8。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23690224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档