我试图获取字符串数据类型变量的crc32,但收到以下错误。
>>> message='hello world!'
>>> import binascii
>>> binascii.crc32(message)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: a bytes-like object is required, not 'str'
对于字符串值,可以使用binascii.crc32(b'hello world!')
完成,但我想知道如何为字符串数据类型变量执行此操作
答案 0 :(得分:2)
当您计算某些数据的crc32时,您需要知道正在散列的字节的确切值。一个字符串可以表示不同编码中的不同字节值,因此传递字符串作为参数是不明确的。
使用binascii.crc32(b'hello world!')
时,您将使用简单的ascii表将char数组转换为字节数组作为转换。
要转换任何字符串,您可以使用:
import binascii
mes = 'hello'
binascii.crc32(mes.encode('utf8'))