1

很简单,我知道,但是文档并没有太大帮助。我正在尝试散列一个简单的字符串。我正在遵循指南。其中给出的例子是:

import hashlib
hash_object = hashlib.md5(b'Hello World')
print(hash_object.hexdigest())

然后你有一个哈希表示。假设我想更进一步。我有四个要连接在一起的字符串,其结果需要转换为字节序列,以便传递给hashlib.md5()函数。但是,我很好奇如何b'Hello World'使用变量而不是硬编码字符串来复制语法。文档似乎建议您可以将格式传递给内置格式函数,因此对于我的用例,例如:

my_string = '%s%s%s%s' % (first, second, third, fourth)
byte_string = format(my_string, 'b')

不过,这并不完全奏效。我该怎么做呢?

4

2 回答 2

2

Python中的字符串是一个字符序列,要将字符串转换为字节序列,您可以使用某些字符集对其进行编码。例如:

my_string = '%s%s%s%s' % (first, second, third, fourth)
byte_string = my_string.encode('utf-8')

而不是my_string.encode('utf-8')你也可以使用bytes(my_string, 'utf-8'),这些是等价的。如果您愿意,您也可以使用不同的编码,但 UTF-8 通常是一个不错的选择,因为它能够表示任何代码点(字符)并且相当紧凑,尤其是对于 ASCII 数据。

于 2013-08-12T22:02:25.327 回答
1
my_string = '%s%s%s' % (first, second, third, fourth)
byte_string = bytes(my_string)
于 2013-08-12T22:01:46.623 回答