如何访问使用 MIFARE 应用程序目录结构的 MIFARE Classic 卡?
How to access a MIFARE Classic card that uses the MIFARE Application Directory structure?
如何从使用 MIFARE 应用程序目录结构格式化的 MIFARE Classic 卡进行身份验证和读取数据?我正在使用 Android.
请参阅 MIFARE Application Directory 上的 NXP 应用说明。通常,为了从使用 MAD 的 MIFARE Classic 卡中读取数据,您需要执行如下操作:
- 使用密钥 A
A0 A1 A2 A3 A4 A5
(public MAD 读取密钥)向扇区 0(MAD 扇区)进行身份验证。
- 读取块 3。
- 根据通用字节(从块 3 读取的字节 9),您可以确定
- 如果卡使用 MAD(位 7 = 1),
- 如果卡支持多个应用程序(位 6 = 1),并且
- MAD 版本(位 1-0)。
读取块 1 和 2,这些块具有以下格式(其中 AIDx
是分配给扇区号 x 的应用程序 ID):
+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
Byte | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
Block 1 |CRC |INFO| AID01 | AID02 | AID03 | AID04 | AID05 | AID06 | AID07 |
+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
Block 2 | AID08 | AID09 | AID10 | AID11 | AID12 | AID13 | AID14 | AID15 |
+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
验证 CRC(块 1,字节 0)。
- 浏览 AID 列表(根据块 1 和 2 的数据生成)以查找您的应用程序 AID(从而找到包含您的应用程序数据的扇区)。
如果使用 MAD 版本 2,验证到扇区 16 并读取块 0 (64)、1 (65) 和 2 (66) 以获得扩展的 AID 列表。这些块的格式是:
+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
Byte | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
Block 0 |CRC |INFO| AID17 | AID18 | AID19 | AID20 | AID21 | AID22 | AID23 |
+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
Block 1 | AID24 | AID25 | AID26 | AID27 | AID28 | AID29 | AID30 | AID31 |
+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
Block 2 | AID32 | AID33 | AID34 | AID35 | AID36 | AID37 | AID38 | AID39 |
+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
验证您应用程序的扇区(通过 AID 列表发现)和 read/write 您应用程序的数据。
如何从使用 MIFARE 应用程序目录结构格式化的 MIFARE Classic 卡进行身份验证和读取数据?我正在使用 Android.
请参阅 MIFARE Application Directory 上的 NXP 应用说明。通常,为了从使用 MAD 的 MIFARE Classic 卡中读取数据,您需要执行如下操作:
- 使用密钥 A
A0 A1 A2 A3 A4 A5
(public MAD 读取密钥)向扇区 0(MAD 扇区)进行身份验证。 - 读取块 3。
- 根据通用字节(从块 3 读取的字节 9),您可以确定
- 如果卡使用 MAD(位 7 = 1),
- 如果卡支持多个应用程序(位 6 = 1),并且
- MAD 版本(位 1-0)。
读取块 1 和 2,这些块具有以下格式(其中
AIDx
是分配给扇区号 x 的应用程序 ID):+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ Byte | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ Block 1 |CRC |INFO| AID01 | AID02 | AID03 | AID04 | AID05 | AID06 | AID07 | +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ Block 2 | AID08 | AID09 | AID10 | AID11 | AID12 | AID13 | AID14 | AID15 | +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
验证 CRC(块 1,字节 0)。
- 浏览 AID 列表(根据块 1 和 2 的数据生成)以查找您的应用程序 AID(从而找到包含您的应用程序数据的扇区)。
如果使用 MAD 版本 2,验证到扇区 16 并读取块 0 (64)、1 (65) 和 2 (66) 以获得扩展的 AID 列表。这些块的格式是:
+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ Byte | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ Block 0 |CRC |INFO| AID17 | AID18 | AID19 | AID20 | AID21 | AID22 | AID23 | +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ Block 1 | AID24 | AID25 | AID26 | AID27 | AID28 | AID29 | AID30 | AID31 | +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ Block 2 | AID32 | AID33 | AID34 | AID35 | AID36 | AID37 | AID38 | AID39 | +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
验证您应用程序的扇区(通过 AID 列表发现)和 read/write 您应用程序的数据。