0

我想使用需要字符串字节表示的 hashlib 函数。在 Python 文档中的这个示例中,他们通过在字符串前面放置一个 'b' 来解决这个问题:

>>> import hashlib, binascii
>>> dk = hashlib.pbkdf2_hmac('sha256', b'password', b'salt', 100000)

这似乎只在函数调用中定义字符串时才有效。我想使用预定义的字符串,但我似乎无法使用 b 函数。我想做类似的事情:

>>> import hashlib, binascii
>>> mystr = 'password'
>>> dk = hashlib.pbkdf2_hmac('sha256', b(mystr), b'salt', 100000)

或者

>>> dk = hashlib.pbkdf2_hmac('sha256', b mystr, b'salt', 100000)

显然,这些都不起作用。我研究并发现了一些更复杂的解决方案,但我想知道是否有任何预定义字符串的解决方案与直接在函数中定义的字符串一样平滑。

谢谢!

4

2 回答 2

0

那么诀窍是什么

bytes(mystr, 'utf8')
于 2016-04-21T11:56:24.993 回答
0

您可以使用bytes(my_string)bytes(my_string, encoding)将字符串转换为字节。不需要binascii模块。

文档可以在这里找到:https ://docs.python.org/3/library/functions.html#bytes

于 2016-04-21T11:56:59.867 回答