首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CRC8 Python代码,如何将列表转换为CRC8值?

CRC8 Python代码,如何将列表转换为CRC8值?
EN

Stack Overflow用户
提问于 2022-08-30 05:45:30
回答 1查看 60关注 0票数 -1

当我将列表转换为crc8哈希值时,会出现错误(语法等等)。我希望将列表转换为CRC8哈希值。请看一看

代码语言:javascript
复制
import crc8
hash = crc8.crc8()
hash.update(b'123')
assert hash.hexdigest() == 'c0'
assert hash.digest() == b'\xc0'  

这是将字符串转换为crc8哈希值的示例代码。我想将列表转换为哈希值。列表中的每个项都需要转换为散列值。

代码语言:javascript
复制
import crc8
list = b["ya123","hello123","nihao123"]
for i in list:
   hash = crc8.crc8()
   hash.update(i)
   assert hash.hexdigest() == 'c0'
   assert hash.digest() == b'\xc0'  

转换的输出应该如下所示

代码语言:javascript
复制
["0x66","0xBF","0x1A"]
EN

回答 1

Stack Overflow用户

发布于 2022-08-30 06:58:42

crc8类需要字节,而不是字符串。因此:

代码语言:javascript
复制
from crc8 import crc8

lst = [b'yas123', b'nihao123', b'hello123']
output = [hex(ord(crc8(e).digest())) for e in lst]
print(output)

输出:

代码语言:javascript
复制
['0xb3', '0x1a', '0xbf']

注:

不清楚为什么预期产出如问题中所述

替代实现:

代码语言:javascript
复制
from crc8 import crc8

lst = ['yas123', 'nihao123', 'hello123']
output = [hex(ord(crc8(e.encode()).digest())) for e in lst]
print(output)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73537638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档