我正在尝试使用ACR122来读/写一个MilfelyClassic1kNFC卡(从工厂提供)。我能探测到这张卡,但无法与它通信。
我已经在网上搜索了好几天,试图在这个网站上找到任何类型的文档(但没有成功)。
我知道这些卡是加密的,但肯定有默认密码或重置卡的方法?
到目前为止,我的情况如下:
card.beginSessionWithReply { (result, error) -> Void in
print("Began card session: \(result) \(card.valid) \(card.currentProtocol)");
let aid : [UInt8] = [0xFF, 0x86, 0x00, 0x00, 0x05, 0x01, 0x00, 0x00, 0x0, 0x00];
var data = NSData(bytes: aid, length: aid.count)
card.transmitRequest(data, reply: { (data, error) -> Void in
print("Transmit: data: \(data) error \(error)");
})
data = "Hi".dataUsingEncoding(NSUTF8StringEncoding)!;
card.sendIns(0xFF, p1: 0x00, p2: 0x00, data: data, le: nil, reply: { (data, uint, error) -> Void in
if let e = error {
if (e.code == TKErrorCode.CorruptedData.rawValue) {
print("CorruptedData");
} else {
print("error code: \(error?.code)");
}
}
print("Sendins: reply:\(data) int:\(uint) error:\(error)");
})
}输出:
["ACS ACR122U"]
Card is valid
ATR: <3b8f8001 804f0ca0 00000306 03000100 0000006a>
Began card session: true true TKSmartCardProtocol(rawValue: 2)
error code: Optional(-2)
Sendins: reply:nil int:0 error:Optional(Error Domain=CryptoTokenKit Code=-2 "(null)")
Transmit: data: Optional(<6300>) error nil任何建议都很好(包括任何能够读写这些卡的OS软件)。
发布于 2016-02-17 02:13:30
我不确定CryptoTokenKit,但我确信我们可以根据ACR122 应用程序接口使用PICC命令来读/写Mifare卡。
你必须通过以下步骤。

您需要提供要读取的块集,并为这些块提供身份验证密钥。有关Mifare经典1k内存结构的更多信息,请参阅数据表这里。

然后,您可以发出读和写APDU命令(可以在ACR122API文档中找到)。干杯!
https://stackoverflow.com/questions/35057927
复制相似问题