Python3找到字符串的crc32

时间:2017-11-17 02:12:53

标签: python-3.x

我试图获取字符串数据类型变量的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!')完成,但我想知道如何为字符串数据类型变量执行此操作

1 个答案:

答案 0 :(得分:2)

当您计算某些数据的crc32时,您需要知道正在散列的字节的确切值。一个字符串可以表示不同编码中的不同字节值,因此传递字符串作为参数是不明确的。

使用binascii.crc32(b'hello world!')时,您将使用简单的ascii表将char数组转换为字节数组作为转换。

要转换任何字符串,您可以使用:

import binascii
mes = 'hello'
binascii.crc32(mes.encode('utf8'))