我想使用需要字符串字节表示的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)
显然,这些都不起作用。我研究并发现了一些更复杂的解决方案,但我想知道是否有任何预定义字符串的解决方案与直接在函数中定义的字符串一样流畅。
谢谢!
bytes(my_string)
或bytes(my_string, encoding)
将字符串转换为字节。无需binascii
模块。
文档可在此处找到:https://docs.python.org/3/library/functions.html#bytes
那么诀窍是什么
bytes(mystr, 'utf8')