24 lines
517 B
Python
24 lines
517 B
Python
class CRC8:
|
|
def __init__(s):
|
|
s.crc = 255
|
|
|
|
def hash(s, int_list):
|
|
for i in int_list:
|
|
s.addVal(i)
|
|
return s.crc
|
|
|
|
def addVal(s, n):
|
|
crc = s.crc
|
|
for bit in range(0, 8):
|
|
if (n ^ crc) & 0x80:
|
|
crc = (crc << 1) ^ 0x31
|
|
else:
|
|
crc = (crc << 1)
|
|
n = n << 1
|
|
s.crc = crc & 0xFF
|
|
return s.crc
|
|
|
|
# print(CRC8().hash([1,144]))
|
|
#print(hex(CRC8().hash([0xBE, 0xEF])))
|
|
#[1, 144, 76, 0, 6, 39]
|