gpt4 book ai didi

nfc - ACR122U读写器工具不支持NFC标签

转载 作者:行者123 更新时间:2023-12-02 04:15:41 25 4
gpt4 key购买 nike

我得到了一个 ACR122U NFC 读卡器 SDK,其中包含从 ACS 获取的示例演示和工具。然后,我尝试运行 ACR122U 读卡器工具,将 mifare 卡 1K 放在 NFC 读卡器上以运行该工具。 .然后,一切都好。但是,只有当获得ATS时才遇到麻烦..它说功能不支持。然后,因为不能执行加载认证,认证,读取 block 和所有的事情。意思是,PICC命令( T=CL Emulation) for mifare classic 存储卡无法运行。

在我尝试获取 ATS 时,topaz 和 mifare ultralight 也发生了同样的情况,无法支持。即使与手机诺基亚 c7 连接,标签也不受支持。

那么,您能给出为什么不支持该功能的建议吗?当我设置PICC操作参数时也遇到了问题。下面是代码

ACR122U PICC接口(interface)连接到:ACS ACR122 0

ACR122U获取固件版本固件版本:ACR122U207

ACR122U 状态

D5 05 00 00 01 01 00 00 00 80 90 00 Error Code: 00 Field: 00 (RF Field is NOT Present and NOT Detected) Number of Target: 01 Logical Number: 01 Bit Rate in Reception: 00 (106 kbps) Bit Rate in Transmission: 00 (106 kbps) Modulation Type: 00 (ISO14443 or Mifare)

ACR122U获取ATR

ATR Value: 3B 8F 80 01 80 4F 0C A0 00 00 03 06 03 00 01 00 00 00 00 6A Active Protocol: T=CL Card Type: ISO 14443A, Part3 (Mifare 1K)

ACR122U APDU命令

13 29 DF 97 90 00

这里显示了问题。它应该返回 90 00-成功

ACR122U获取数据获取UID

90 00 UID: 13 29 DF 97

获取 ATS

6A 81 Function not supported

ACR122U加载验证 key

90 00 < Key Structure: 00 < Key Number: 00 < Key: FF FF FF FF FF FF Load Authentication Keys Success

mifare classic 存储卡的 PICC 命令(T=CL 仿真)无法运行。

ACR122U读取二进制 block

ACR122U认证

63 00 Operation failed < FF B0 00 04 10 63 00 Operation failed

最佳答案

我意识到这是一个老问题,但我正在研究同一张卡(Mifare 1K)。我的起始代码是:

public void start() throws CardReaderException {
TerminalFactory factory = TerminalFactory.getDefault();
List<CardTerminal> terminals;
try {
terminals = factory.terminals().list();
//System.out.println("Terminals: " + terminals);
// get the first terminal
CardTerminal terminal = terminals.get(0);
// establish a connection with the card
card = terminal.connect("*");
//System.out.println("card: " + card);
channel = card.getBasicChannel();
} catch (CardException e) {
e.printStackTrace();
}
}

然后是验证代码:

private boolean authenticate(byte block) {
byte [] setKey = new byte[]{(byte) 0xff, (byte) 0x82, 00, 01, 06, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF};
byte [] authKey = new byte[] {(byte) 0xff, (byte) 0x86, 00, 00, 0x05, 0x01, 0x00, block, 0x60, 0};

ResponseAPDU r;
try {
r = channel.transmit(new CommandAPDU(setKey));
if ( r.getBytes()[0] != retOk) {
return false;
}

r = channel.transmit(new CommandAPDU(authKey));
if ( r.getBytes()[0] != retOk) {
return false;
}
} catch (CardException e) {
e.printStackTrace();
}


return true;
}

经过身份验证后,我可以读取(0xFF、0xB0、0x00、 block 、0x10)或写入(0xFF、0xD6、0x00、 block 、0x10)到卡。

关于nfc - ACR122U读写器工具不支持NFC标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7359571/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com