binary - 如何在python中对字符串进行二进制编码?

标签 binary python-3.x ascii md5

我正在尝试构建一个用于练习的 md5 cookies 。在我继续之前,这里是我的代码:

def offline_wordlist_attack(list_path):
      with fileinput.input(files=(list_path)) as wordlist:
          for word in wordlist:
              md5_hash_object = hashlib.md5() # constructing an md5 hash object
              md5_hash_object.update(binascii.a2b_uu(word))
              word_digest = md5_hash_object.digest() # performing the md5 digestion of the word   
              print(word_digest) # Debug

我的问题是 md5_hash_object.update(binascii.a2b_uu(word)) . hashlib Python 3 文档指出传递给 update() 的字符串应该在 二进制表示 .文档使用 m.update(b"Nobody inspects")举个例子。在我的代码中,我不能简单地附加 b前面的变量word .所以我尝试使用 binascii库,但该库也在文档中注明:

Note

Encoding and decoding functions do not accept Unicode strings. Only bytestring and bytearray objects can be processed.



有人可以帮我解决这个问题吗?它让我变得更好。

最佳答案

您需要传入一个 bytes对象,而不是 str .从 str 出发的典型路线(Python 3 中的 unicode 字符串)到 bytes是使用 .encode()方法并指定您希望使用的编码。

my_bytes = my_string.encode('utf-8')

关于binary - 如何在python中对字符串进行二进制编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12175417/

相关文章:

python - 在 python 中记录精度

python - 为什么在构建 dict() 时会出现 TypeError?

javascript - Html 文本区域 - 手动输入新行 (/n) 不起作用

c - 替换C中字符串中字符的ASCII值

Python BeautifulSoup - 如何提取此文本

r - 反斜杠转义数字 '\1' 到 '\7' 在 R 字符串中意味着什么,为什么它们比较错误?

binary - 可以使用三个十六进制数字来表示 12 个二进制位。为什么这句话是真的呢?

java 二进制到十进制转换器

c - 从文本文件读取并写入二进制文件

c - 这些位掩码之间的区别