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



我必须将客户的徽章代码列表从旧软件导入到新软件。代码指的是125Khz的只读射频识别徽章(很可能,不是100%(。

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

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

有可能对代码进行了某种"加密",或者存储的代码不是实际的mifare标记uid,而是存储在内存中的某种其他值,但我想问一下,如果可能的话,是否有人能猜到如何从旧值中获得"正常"的十六进制代码。

作为参考,我在这里粘贴了几个旧的/新的对:

徽章编号2700052B4,存储为:30 30 30 30 32 31 37 32 0D 0A

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

概括一下,我需要从存储的值开始获得十六进制字符串中的徽章编号,以便在使用新软件读取徽章/客户时能够识别它。

另请注意,尾部"0D 0A"似乎只是一个CRLF,所有存储的徽章都是一样的。

我不确定徽章号的前两位数字,但存储的值是一个US-ASCII编码的字符串,包含徽章号尾部4(?(字节的十进制表示(以及回车+换行(:

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

是字符串

"0000021172\r\n">

21172的十进制数是十六进制的0x52B4(即2700052B4的最后一部分(。类似地,十进制的7242410是十六进制的0x6E82AA(即5B006E82AA的最后部分(。

最新更新