Python:替代binascii b函数用于预定义字符串

时间:2016-04-21 10:13:26

标签: python-3.x binascii

我想使用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)

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

谢谢!

2 个答案:

答案 0 :(得分:0)

诀窍是什么

bytes(mystr, 'utf8')

答案 1 :(得分:0)

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

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