我有一个总是报告 64 位的读卡器,可以读取 4 或 7 字节 UID 的卡。
例如,我看到它可以报告:
04-18-c5-82-00-00-00-00
- uid0-uid1-uid2-uid3-00-00-00-00
04-18-c5-82-f1-3b-81-00
- uid0-uid1-uid2-uid3-uid4-uid5-uid6-00
是什么阻止了 7 字节的 UID 将 uid4、uid5 和 uid6 设置为零?这是否包含在规范中?如果是这样,哪个规范?
最佳答案
是什么阻止了 7 字节的 UID 将 uid4、uid5 和 uid6 设置为零?
没有什么。 UID 的格式(由 MIFARE 卡使用)在 ISO/IEC 14443-3 中定义。特别是对于 MIFARE 卡,NXP 有(或至少有?)一些用于 4 字节 UID 的进一步分配逻辑,但这不是公开可用的。
是否可以区分这两种情况?
如果阅读器完全按照您在示例中显示的形式输出 UID,那么答案是否定的(至少不可靠)。然而,一些阅读器输出 8 字节的 UID,并包括 7 字节 UID 的级联标签。因此,对于这些读者,所有 7 字节的 UID 都以 0x88 开头。您的读者似乎并非如此。
是否有可能的策略来区分这两种情况?
我想到了一些策略来区分 4 字节 UID 和 7 字节 UID。
关于uniqueidentifier - Mifare 卡 : distinguish between 4-byte and 7-byte UIDs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37837730/