使用 ACR122U reader 在 mifare 1K 上写入块命令
APDU Write block commands on mifare 1K with ACR122U reader
拜托,
我正在尝试使用 ACR122U reader.
将一个简单的二进制块写入 mifare 1k 标签
我正在尝试写入块 01,5 个字节,文本:'teste' 并读回。
但是我在更新这个块时总是得到错误 6300。
有什么想法吗?
我正在使用 windows 8.1/delphi xe8。
我的日志是:
SCardEstablishContext succeeded.
Card State changed in ACS ACR122U PICC Interface 0 to available
New reader found: ACS ACR122U PICC Interface 0
Card inserted in ACS ACR122U PICC Interface 0
ATR = 3B 8F 80 01 80 4F 0C A0 00 00 03 06 03 00 01 00 00 00 00 6A
SCardConnect (shared) succeeded.
Active Protocol: T=1
ISO 14443 A, Part3 Card Type: Mifare Standard 1K is detected
Sending APDU to card: FF 82 00 01 06 FF FF FF FF FF FF
SCardTransmit succeeded.
Card response status word: 9000 (OK)
Sending APDU to card: FF 86 00 00 05 01 00 01 60 01
SCardTransmit succeeded.
Card response status word: 9000 (OK)
Sending APDU to card: FF 86 00 00 05 01 00 01 60 01
SCardTransmit succeeded.
Card response status word: 9000 (OK)
Sending APDU to card: FF D6 00 01 05 74 65 73 74 65
SCardTransmit succeeded.
Card response status word: 6300 (State of non-volatile memory changed.)
很容易解决这个问题
您正在写入一个块,您必须提供完整的块信息。 Lc
的唯一选项是 x04
或 x10
- 四个字节或十六个字节。对于 Mifare 1K,很明显您需要提供 16 个字节。您只有 5 个字节的数据,所以用零填充其余部分。
| CMD | block1 | 16 bytes | data ...
FF D6 00 01 10 74 65 73 74 65 00 00 00 00 00 00 00 00 00 00 00
拜托,
我正在尝试使用 ACR122U reader.
将一个简单的二进制块写入 mifare 1k 标签我正在尝试写入块 01,5 个字节,文本:'teste' 并读回。
但是我在更新这个块时总是得到错误 6300。
有什么想法吗?
我正在使用 windows 8.1/delphi xe8。
我的日志是:
SCardEstablishContext succeeded.
Card State changed in ACS ACR122U PICC Interface 0 to available
New reader found: ACS ACR122U PICC Interface 0
Card inserted in ACS ACR122U PICC Interface 0
ATR = 3B 8F 80 01 80 4F 0C A0 00 00 03 06 03 00 01 00 00 00 00 6A
SCardConnect (shared) succeeded.
Active Protocol: T=1
ISO 14443 A, Part3 Card Type: Mifare Standard 1K is detected
Sending APDU to card: FF 82 00 01 06 FF FF FF FF FF FF
SCardTransmit succeeded.
Card response status word: 9000 (OK)
Sending APDU to card: FF 86 00 00 05 01 00 01 60 01
SCardTransmit succeeded.
Card response status word: 9000 (OK)
Sending APDU to card: FF 86 00 00 05 01 00 01 60 01
SCardTransmit succeeded.
Card response status word: 9000 (OK)
Sending APDU to card: FF D6 00 01 05 74 65 73 74 65
SCardTransmit succeeded.
Card response status word: 6300 (State of non-volatile memory changed.)
您正在写入一个块,您必须提供完整的块信息。 Lc
的唯一选项是 x04
或 x10
- 四个字节或十六个字节。对于 Mifare 1K,很明显您需要提供 16 个字节。您只有 5 个字节的数据,所以用零填充其余部分。
| CMD | block1 | 16 bytes | data ...
FF D6 00 01 10 74 65 73 74 65 00 00 00 00 00 00 00 00 00 00 00