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