要使用 ACR122U 读卡器进行传输 APDU,可以使用以下代码示例:
import smartcard
from smartcard.CardType import AnyCardType
from smartcard.CardRequest import CardRequest
from smartcard.util import toHexString
# 创建一个卡片请求
card_type = AnyCardType()
card_request = CardRequest(timeout=10, cardType=card_type)
# 等待插入卡片
card_service = card_request.waitforcard()
# 连接到卡片
card_connection = card_service.connection
card_connection.connect()
# 发送 APDU 并获取响应
apdu_command = [0x00, 0xA4, 0x04, 0x00, 0x0E, 0x32, 0x50, 0x41, 0x59, 0x2E, 0x53, 0x59, 0x53, 0x2E, 0x44, 0x44, 0x46, 0x30, 0x31]
data, sw1, sw2 = card_connection.transmit(apdu_command)
# 打印响应
print("Response: " + toHexString(data))
print("Status words: " + hex(sw1) + " " + hex(sw2))
# 断开连接
card_connection.disconnect()
上面的代码示例使用了 Python 中的 smartcard
库。首先,我们创建了一个卡片请求并等待插入卡片。然后,我们连接到卡片,发送 APDU 命令并获取响应。最后,我们打印出响应和状态字,并断开连接。
注意:确保已安装 smartcard
库。你可以使用 pip install pyscard
命令来安装它。