我尝试获取字符串数据类型变量的 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!')
完成,但我想知道如何对字符串数据执行此操作- 类型变量。
需要将字符串变量转换为字节串,然后才能计算其 CRC32 校验和。你可以使用字符串的
encode()
方法来做到这一点。
以下是示例:
>>> message = 'hello world!'
>>> import binascii
>>> binascii.crc32(message.encode())
222957957
encode()
方法默认使用 UTF-8 编码将字符串转换为字节串。如果你需要使用不同的编码,可以在
encode()
方法中指定它,例如:
>>> binascii.crc32(message.encode('utf-16'))
1705722454
这就是你使用
binascii.crc32()
函数获取字符串变量的 CRC32 校验和的方法。