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

问题描述:

我必须将客户的徽章代码列表从旧软件导入新代码。代码是指125Khz只读rfid徽章(很可能,并非100%)。获取存储的mifare标签的十六进制字符串

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

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

可能某种“加密”已应用于代码,或者存储的代码不是实际的mifare标记uid,而是存储在内存中的某种其他类型的值,但我想问是否有人可以猜测,如果可能的话,从旧值中获取“正常”十六进制代码。

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

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

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

回顾一下,我需要从存储的值开始以十六进制字符串的形式获取徽章号码,以便能够识别徽章/客户,当我用新软件阅读它。

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

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

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

是字符串

 
"0000021172\r\n" 

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

+0

谢谢Michael。旧软件只存储徽章的最后一部分,或者在导出操作过程中“屏蔽”它们。 再次感谢您,我将其标记为正确的答案。 – Alberto