很简单,我知道,但文档不太有帮助。我正在尝试哈希一个简单的字符串。我正在关注this指南。其中给出的例子是:
import hashlib
hash_object = hashlib.md5(b'Hello World')
print(hash_object.hexdigest())
然后你有一个哈希表示法。假设我想更进一步。我有四个字符串要连接在一起,其结果需要转换为字节序列,以便传递给hashlib.md5()
函数。但是,我很好奇我如何使用变量而不是硬编码字符串来复制b'Hello World'
语法。文档似乎建议您可以将格式传递给内置的format函数,因此对于我的用例类似于:
my_string = '%s%s%s%s' % (first, second, third, fourth)
byte_string = format(my_string, 'b')
但是,这并不是很有效。我该怎么做?
答案 0 :(得分: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数据。
答案 1 :(得分:1)
my_string = '%s%s%s' % (first, second, third, fourth)
byte_string = bytes(my_string)