pcsc-sharp Mifare身份验证

问题描述 投票:1回答:1

我正在使用pcsc-sharp库与ACR122U读取器进行通信,以对MIFARE Classic 1k卡进行读/写信息。

熟悉了磁带库和APDU概念之后,我可以在应用程序中使用卡UID作为标识符。现在,我需要在卡上设置自己的ID。因此,我阅读了一些有关恩智浦MIFARE的手册(例如MF1S70YYX_V1),并获得了一些有关ISO 7816-4的信息。

我知道在访问卡内存以执行读/写操作之前需要进行身份验证,并且我知道标准的Key值。

我从GitHub下载了pcsc-sharp示例,并运行了Mifare1kTest示例。我可以工作,但第36行的card.LoadKey失败。 LoadKey中Apdu命令的响应值为SW1 = 99 SW2 = 0,我在任何文档中都找不到。注释掉“引发新异常”部分可使示例工作。

我现在的问题是,哪些值是传递给Card.LoadKey的正确值,分别是用于Apdu命令中的参数的正确值。 “键号”(扇区号-扇区/块组合)是什么意思?如果该示例可行,是否需要LoadKey调用?

nfc smartcard mifare apdu contactless-smartcard
1个回答
1
投票

您的问题很广泛,但是这些应该对您有用。用注释解释代码

var loadKeySuccessful = card.LoadKey(
    KeyStructure.VolatileMemory,
    0x00, // first key slot
    new byte[] {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF} // key
);
© www.soinside.com 2019 - 2024. All rights reserved.