如何将对象的唯一ID压缩到RFID的96位内存中

How to compress unique ID of object into 96 bit memory of RFID

RFID 技术在某些国家/地区非常昂贵,限制是将数据存储在 96 位内存标签中。我正在使用的系统具有符合 packaging/contents 类型的 24 字符代码,并且由于其 128 位,从内存的角度来看它是昂贵的。

因此,我想在Python中编写一个程序,以便我可以将相同的24位代码压缩为96位。如果任何其他软件如 C 可以提供帮助,请告诉我。我应该也有能力读回它并重新转换它。

样本识别码为M1P100000812341567678991

代码

import zlib
import bz2
a = 'M1P100000812341567678991'
b = a.encode()
c = zlib.compress(b, level=9)

谢谢。

如果你有96位,那就是12个字节。如果您 ID 的前三个字符是字母,那么它们将适合前三个字节。其余的,如果作为二进制数,应该适合9个字节:

a = 'M1P990000812341567678991'
head = a[:3]
tail = a[3:]
head = head.encode('utf-8')
tail = int(tail).to_bytes(9, byteorder='little')
print(head.hex())
print(tail.hex())

输出(十六进制,但两个字节数组的长度实际上是3和9字节)

4d3150
0fea4b57936d05ab35