bba*_*ker 6 rfid uniqueidentifier smartcard-reader mifare contactless-smartcard
我有一个始终报告 64 位的读卡器,并且可以读取具有 4 或 7 字节 UID 的卡。
作为一个例子,我看到它可以报告:
04-18-c5-82-00-00-00-00- 形式为 4 字节的 UIDuid0-uid1-uid2-uid3-00-00-00-0004-18-c5-82-f1-3b-81-00- 形式为 7 字节的 UIDuid0-uid1-uid2-uid3-uid4-uid5-uid6-00是什么阻止 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 的策略。
7 字节 UID 的第一个字节是制造商代码(如 ISO/IEC 7816-6 中所定义(有关如何获取列表,请参阅如何使用 Android 从 NFC 标签检测制造商? )。因此,如果您有制造商数量有限(例如,如果您仅使用带有 NXP 芯片的 MIFARE 卡),您可以将所有以 NXP 制造商代码 (0x04) 开头的 UID 解释为 7 字节 UID。不过,您应该注意 4 字节 UID UID 也允许以 0x04 开头。因此,此方法不是 100% 可靠,在某些情况下可能会失败。
4 字节 UID 的第一个字节不得包含以下任何值:“x8”(其中 x!=“0”)、“xF”。如果您发现第一个字节与这些值中的任何一个相匹配,则可以假设 UID 由 7 个字节组成。
| 归档时间: |
|
| 查看次数: |
17518 次 |
| 最近记录: |