MiFare Classic 1k标签读取码不一致,求十六进制转换及原因分析
MiFare Classic 1k 标签读取结果不一致的原因及转换方法
不一致的核心原因
- 输出格式与范围差异:Promag MF700/MF7这类专业阅读器默认输出完整的十六进制标识符(可能包含UID的前导零、厂商前缀或校验字段),你看到的
000005E4FA9D是6字节的十六进制值;而普通RFID阅读器通常只提取UID的核心部分,并以十进制格式输出(即3108611405)。 - 字节序(端序)差异:不同厂商的阅读器对UID字节的输出顺序可能采用大端(高位字节在前)或小端(低位字节在前),直接转换会因顺序不匹配导致结果无法对应。
- 标识符截取规则差异:部分普通阅读器可能会截断UID的部分字节(比如忽略前导零或厂商字段),只输出用户常用的核心识别段。
正确的转换与匹配方法
步骤1:将十进制读取值转为十六进制
把普通阅读器输出的十进制数3108611405转换为十六进制,结果为B9178C95(可通过系统计算器的程序员模式验证)。
步骤2:调整字节序匹配
多数RFID阅读器会以小端序输出UID(字节反转),将B9178C95反转字节得到958C17B9,再与Promag输出的十六进制字符串000005E4FA9D对比是否存在匹配片段。
步骤3:验证完整UID范围
MiFare Classic 1k的UID通常为4字节或7字节,Promag输出的6字节值可能包含附加字段,可尝试截取以下片段对比:
- 截取后4字节:
05E4FA9D,反转后为9DFAE405 - 截取中间4字节:
0005E4FA,反转后为FAE40500
如果仍不匹配,需检查阅读器的配置(部分专业阅读器可设置UID输出格式、是否包含附加字段)。
内容的提问来源于stack exchange,提问作者Alberto Linde
相关产品推荐
相关产品推荐

