使用ACR122U NFC读卡器的Mifare 1K NFC标签的身份验证失败

时间:2012-02-21 16:21:01

标签: nfc

使用ACR122U工具验证Mifare 1K NFC标签时,我总是得到失败的结果,但我可以使用Android手机读取/写入此标签。

ACR122U Load Authentication Keys
< FF 82 00 00 06 FF FF FF FF FF FF 
> 90 00 
< Key Structure: 00    < Key Number: 00
< Key: FF FF FF FF FF FF
Load Authentication Keys Success

ACR122U Authentication
< FF 86 00 00 05 01 00 00 60 00 
> 63 00 
Operation failed

5 个答案:

答案 0 :(得分:4)

您对Android手机能够读取和写入此标签的评论表明其格式化为包含NDEF数据。您可以尝试将MIFARE应用程序目录密钥0xA0A1A2A3A4A5用于第一个扇区(块0-3),并将NFC论坛密钥0xD3F7D3F7D3F7用于以下扇区,而不是出厂默认密钥0xFFFFFFFFFFFF。有关详细信息,请参阅NFC Type MIFARE Classic Tag Operation

答案 1 :(得分:0)

MF Classic 1k卡的验证可能因各种原因而失败。

  1. 错误的密钥

    一个。长度:应为6个字节(12个十六进制字符)。

    湾密钥匹配:密钥将是传输模式中的十六进制FFFFFFFFFFFF(默认情况下),并且可以由提供供应商的卡更改。您必须从供应商那里获得确切的密钥。

  2. 密钥类别:访问条件(所有扇区的块3的6-9个字节)将说明您必须使用哪个密钥来验证特定内存操作的相应扇区。要了解更多详细信息,请参阅< / p>

  3. http://www.nxp.com/documents/data_sheet/MF1S50YYX.pdf

答案 2 :(得分:0)

在Mifare Classic 1K标签中有16个扇区,每个扇区包含4个块,每个块包含16个字节。在从页面读取或写入之前您必须使用密钥A或密钥B对扇区进行身份验证。当身份验证完成后,您可以进行读取或写入。以下是使用该密钥作为密钥A(60)的身份验证命令验证扇区0:

FF 86 0000 05 01 0000 60 00

或者使用该密钥作为密钥B(61)验证扇区0:

FF 86 0000 05 01 0000 61 00

或使用此命令您还可以验证扇区0

byte[] authenticationByte = new byte[10];
    authenticationByte = new byte[] { (byte) 0xFF, (byte) 0x86, (byte) 0x00,
 (byte) 0x00, (byte) 0x05, (byte) 0x00,(byte) 0x00, (byte) 0x04, 
                                    (byte) 0x60,(byte) 0x00 };

有关详情,请点击this answer

答案 3 :(得分:0)

使用&#34; NFC TagInfo&#34;应用程序的android。您可以使用该应用程序读取十六进制数据并找出正确的密钥。在每个部门的最后都会有&#34; keya,access,keyb&#34;数据。前6个字节(12个十六进制字符)是密钥a,后6个字节(再次是12个十六进制字符)是密钥b。使用新密钥读取和写入卡片。

答案 4 :(得分:0)

我为一些ACR读者写过an utility,而带有Mifare经典卡的ACR 122U正在编写某种bug。相同的代码适用于ACR 1222L。

然而,Mifare Classic卡是废话,所以我建议切换卡来解决这个问题。

相关问题