2

我正在使用 ACR122U NFC 读写器和 MIFARE Classic 1K 卡。要为 MIFARE 卡加载身份验证密钥,我使用以下 APDU 命令:

FF 82 20 00 06 FF FF FF FF FF FF

读者回应90 00(表示成功)。但是,在另一台 PC 上,我有相同的读取器/写入器和相同的标签,但我收到了响应代码63 00,这意味着操作失败。

当我阅读 ACR122U 文档时,它将命令声明为

FF 82 00 00 06 <键>

这个字节被命名为键结构,在文档中它的值是 00。这个字节会是这个问题的根源吗?

任何人都可以帮助我并解释密钥结构字节的值吗?

4

2 回答 2

1

我很惊讶您发现一个支持密钥结构 (P1) 设置为 0x20 的 ACR122U。阅读器的API 手册(参见第 5.1 节加载身份验证密钥)明确指出保留 0x00 以外的值(即不得使用)。这意味着 ACR122U 仅支持易失性存储器中的卡密钥(即卡的验证密钥)(即,当读卡器拔出时,密钥会从内存中清除)。

您可以在PC/SC 规范中找到密钥结构 (P1) 字节的定义(在第 3 部分。PC 连接接口设备的要求):

  • 位 7:该位指示在此命令中传输的密钥是卡片密钥('0')还是读卡器密钥('1')。读卡器密钥是在 LOAD KEYS 命令(见第 6 位)中传输期间用于加密卡密钥的密钥。
  • 位 6:在此命令中传输的密钥以纯文本 ('0') 或使用读取器密钥加密 ('1') 传输(参见位 3..0)。
  • 位 5:该位指示传输的密钥是否应存储在易失性 ('0') 或非易失性 ('1') 存储器中。
  • 位 4:保留并始终设置为“0”。
  • 位 3..0:如果设置了位 6,则用于加密传输密钥的读取器密钥编号。
于 2016-03-23T07:22:02.467 回答
0

加载身份验证密钥

找到附图

加载键图像

密钥结构:00 密钥加载到阅读器易失性存储器 密钥编号:00~01 阅读器上的密钥位置 密钥:加载到阅读器中的密钥值 例如 {FF FF FF FF FF FF}

响应:90 00 操作成功完成:63 00 操作失败

于 2017-05-21T12:39:19.077 回答