Python:预定义字符串的 binascii b 函数的替代方法
Python: Alternative to binascii b-function for predefined string
我想使用需要字符串字节表示的 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(mystr, 'utf8')
您可以使用 bytes(my_string)
或 bytes(my_string, encoding)
将字符串转换为字节。不需要 binascii
模块。
可在此处找到文档:https://docs.python.org/3/library/functions.html#bytes
我想使用需要字符串字节表示的 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(mystr, 'utf8')
您可以使用 bytes(my_string)
或 bytes(my_string, encoding)
将字符串转换为字节。不需要 binascii
模块。
可在此处找到文档:https://docs.python.org/3/library/functions.html#bytes