如何访问使用MIFARE应用程序目录结构的MIFARE Classic卡? [英] How to access a MIFARE Classic card that uses the MIFARE Application Directory structure?
问题描述
如何从以MIFARE应用程序目录结构格式化的MIFARE Classic卡中进行身份验证和读取数据?我正在使用Android.
How can I make authenticate and read data from a MIFARE Classic card that is formatted with the MIFARE Application Directory structure? I'm using Android.
推荐答案
See NXP's application note on the MIFARE Application Directory. Typically, in order to read data from a MIFARE Classic card that makes use of the MAD, you would do something like the following:
- 使用密钥A
A0 A1 A2 A3 A4 A5
(公用MAD读取密钥)对扇区0(MAD扇区)进行身份验证. - 读取块3.
- 基于通用字节(从块3读取的字节9),您可以确定
- 如果卡使用MAD(位7 = 1),
- 如果卡支持多种应用程序(位6 = 1),并且
- MAD版本(位1-0).
- Authenticate to sector 0 (MAD sector) using key A
A0 A1 A2 A3 A4 A5
(the public MAD read key). - Read block 3.
- Based on the general purpose byte (byte 9 read from block 3), you can determine
- if the card uses the MAD (bit 7 = 1),
- if the card supports multiple applications (bit 6 = 1), and
- the MAD version (bits 1-0).
读取块1和2,这些块具有以下格式(其中AIDx
是分配给扇区号 x 的应用程序ID):
Read blocks 1 and 2, these blocks have the following format (where AIDx
is the application ID assigned to sector number x):
+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
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).
Verify the CRC (block 1, byte 0).
如果使用MAD版本2,则对扇区16进行身份验证并读取块0(64),1(65)和2(66),以获得扩展的AID列表.这些块的格式为:
If MAD version 2 is used, authenticate to sector 16 and read blocks 0 (64), 1 (65), and 2 (66) in order to get the extended AID list. The format of these blocks is:
+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
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列表发现)并读取/写入应用程序的数据.
Authenticate to the sectors of your application (as discovered through the AID list) and read/write the data of your application.
这篇关于如何访问使用MIFARE应用程序目录结构的MIFARE Classic卡?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!