簡體   English   中英

使用ACR122U NFC讀卡器的Mifare 1K NFC標簽的身份驗證失敗

[英]Authentication failure for Mifare 1K NFC tag using ACR122U NFC reader

當使用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

您對Android手機能夠讀取和寫入此標簽的評論表明其格式化為包含NDEF數據。 您可以嘗試將MIFARE應用程序目錄密鑰0xA0A1A2A3A4A5用於第一個扇區(塊0-3),並將NFC論壇密鑰0xD3F7D3F7D3F7用於以下扇區,而不是出廠默認密鑰0xFFFFFFFFFFFF。 有關詳細信息,請參閱NFC類型MIFARE經典標簽操作

MF Classic 1k卡的驗證可能因不同原因而失敗。

  1. 錯誤的鑰匙

    一個。 長度:應為6個字節(12個十六進制字符)。

    密鑰匹配:密鑰將是傳輸模式中的十六進制FFFFFFFFFFFF(默認情況下),並且可以由提供供應商的卡更改。 您必須從供應商那里獲得確切的密鑰。

  2. 密鑰類別:訪問條件(所有扇區的塊3的6-9個字節)將說明您必須使用哪個密鑰來驗證特定存儲器操作的相應扇區。要了解更多詳細信息,請參閱

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

在Mifare Classic 1K標簽中有16個扇區,每個扇區包含4個塊,每個塊包含16個字節。 在從頁面讀取或寫入之前您必須使用密鑰A或密鑰B對扇區進行身份驗證。當身份驗證完成后,您可以進行讀取或寫入。 以下是使用該密鑰作為密鑰A(60)的認證命令認證扇區0:

FF 86 0000 05 01 0000 60 00

或者使用該密鑰作為密鑰B來驗證扇區0(61):

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 };

有關詳細信息,您可以按照此答案

使用“NFC TagInfo”應用程序用於Android。 您可以使用該應用程序讀取十六進制數據並找出正確的密鑰。 在每個扇區的末尾都會有“keya,access,keyb”數據。 前6個字節(12個十六進制字符)是密鑰a,后6個字節(再次是12個十六進制字符)是密鑰b。 使用新密鑰讀取和寫入卡。

我為一些ACR讀者編寫了一個實用程序 ,帶有Mifare經典卡的ACR 122U正在遇到某種錯誤。 相同的代碼適用於ACR 1222L。

然而,Mifare Classic卡是廢話,所以我建議切換卡來解決問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM