获取存储的 mifare 标签的十六进制字符串

Get hex string of stored mifare tags

我必须将客户的徽章代码列表从旧软件导入新软件。代码指的是 125Khz 只读 rfid 徽章(很可能,不是 100% 确定)。

如果我读取给定的徽章,新软件中生成的十六进制字符串是“27000052B4”,但在旧软件中它存储为“30 30 30 30 30 32 31 31 37 32 0D 0A”。

我无法理解所应用的转换,以及如何从存储的代码中获取 "my" 代码。

可能是代码中应用了某种 "encryption",或者存储的代码不是实际的 mifare 标签 uid,而是存储在内存中的其他类型的值,但我想询问是否有人能猜出如何从旧值中获取 "normal" 十六进制代码。

作为参考,我在这里粘贴了一对old/new对:

徽章 n。 27000052B4,存储为:30 30 30 30 30 32 31 31 37 32 0D 0A

徽章 n。 5B006E82AA,存储为:30 30 30 37 32 34 32 34 31 30 0D 0A

总而言之,我需要从存储值开始获取十六进制字符串中的徽章编号,以便在使用新软件读取时能够识别badge/customer。

作为附加说明,尾随部分“0D 0A”似乎只是一个 CRLF,它对于所有存储的徽章都是相同的。

我不确定徽章编号的前 2 位数字,但存储的值是一个 US-ASCII 编码字符串,其中包含徽章编号尾部 4(?) 字节的十进制表示形式(和马车 return + 换行):

30 30 30 30 30 32 31 31 37 32 0D 0A

是字符串

"0000021172\r\n"

十进制的21172是十六进制的0x52B4(即27000052B4的最后一部分)。同样,十进制的7242410是十六进制的0x6E82AA(即5B006E82AA的最后一部分)。