首页 文章

RFID唯一的序列号转换

提问于
浏览
2

我的USB-RFID读卡器从卡上接收24位ID . 我可以将此ID转换为8位/ 16位格式 . 但是如何将其转换为40位格式?

一个标签的示例:

  • 24位十进制格式(我从读者那里得到):0005966009

  • 8,16位二进制格式(通过Python转换):01011011,0000100010111001

  • 8,16位十进制格式(通过Python转换):91,2233

  • 40位十进制格式(由制造商提供):455272499385

如何从24位数字中获取该40位数?

标签标准:唯一,125 kHz

制造商系统的屏幕截图:

1 回答

  • 2

    不,通常不可能将24位数转换为40位数 . 这样的转换意味着您将16位额外信息添加到24位值 . 这些额外信息不会神奇地出现在任何地方 .

    在你的情况下,数字是

    • 24位格式:0005966009dec = 5B08B9hex

    • 8 16位格式:091dec&02233dec = 5Bhex08B9hex

    • 40位格式:455272499385dec = 6A005B08B9hex

    因此,所有三个数字都包含24个公共位( 5B08B9hex ) . 40位数字的附加前缀值为 6A00hex .

    既然你没有透露你所使用的RFID系统和标签(除了它们在125 khz上运行),那么就无法判断该前缀是否是所有标签相同的标准前缀,或者该前缀是否更改为每个标签(或每个制造商,客户等)

    如果所有标记的前缀相同,则可以轻松使用值 6A00hex 作为每个标记序列号的高16位 . 但是,如果不同标签的前缀可能不同,那么除了让读取器读取完整的40位序列号之外别无他法 .

    然而,如果所有读者只读取24位值,我不明白为什么你甚至想要使用整个40位值 . 即使您已经拥有一个包含整个40位值的数据库,您也可以轻松地将该值修剪为24位值(只要较低的24位在所有标记中都是(足够)唯一的) .

相关问题