我必须将客户的徽章代码列表从旧软件导入到新软件中。代码指的是125Khz只读rfid徽章(很可能,不是100%纯粹的那种)。
如果我读了一个给定的徽章,新软件中产生的十六进制字符串是" 27000052B4",但在旧版本中它存储为" 30 30 30 30 30 32 31 31 37 32 0D 0A"。
我无法理解所应用的转化,以及如何获得" my"来自存储的代码。
某些"加密"已经应用于代码,或者存储的代码不是实际的mifare标签uid,而是存储在内存中的其他一些值,但我想问一下是否有人可以猜测如何,如果可能的话,得到"正常"来自旧值的十六进制代码。
作为参考,我在这里贴了几个旧/新对:
徽章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总结一下,我需要从存储的值开始以十六进制字符串获取徽章编号,以便在我使用新软件阅读时能够识别徽章/客户。
作为附加说明,尾随部分" 0D 0A"似乎只是一个CRLF,所有存储的徽章都是一样的。
答案 0 :(得分:0)
我不确定徽章编号的前2位数字,但是存储的值是US-ASCII编码的字符串,其中包含徽章编号的尾随4(?)字节的十进制表示形式(和一个支架)返回+换行):
30 30 30 30 30 32 31 31 37 32 0D 0A
是字符串
"0000021172\r\n"
21172(十进制)是十六进制的0x52B4(即27000052B4的最后一部分)。类似地,十进制的7242410是十六进制的0x6E82AA(即5B006E82AA的最后一部分)。