[英]MIFARE Classic 1K load authentication keys failure with ACR122U
[英]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卡的驗證可能因不同原因而失敗。
錯誤的鑰匙
一個。 長度:應為6個字節(12個十六進制字符)。
灣 密鑰匹配:密鑰將是傳輸模式中的十六進制FFFFFFFFFFFF(默認情況下),並且可以由提供供應商的卡更改。 您必須從供應商那里獲得確切的密鑰。
密鑰類別:訪問條件(所有扇區的塊3的6-9個字節)將說明您必須使用哪個密鑰來驗證特定存儲器操作的相應扇區。要了解更多詳細信息,請參閱
在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.