3

我正在尝试使用 mifare 卡读取序列号。我可以使用 pyscard 的 atr。但是当我使用多张卡片时,他会给出相同的 ID。

还是我在 mifare 卡上写数据。但我该怎么做。我在 ubuntu 服务器上使用 python 脚本。我的读卡器是acr122u。

请这将非常有帮助

谢谢

4

3 回答 3

5

为此,您应该使用 APDU 命令。如果是 mifare 卡,获取 UID 的命令是 0xFF,0xCA,0x00,0x00,0x00。

按照此链接查看高级 api。这应该给你一个想法。

于 2013-10-16T02:20:35.623 回答
1

最好的使用方式是pyscard(Python 模块)或Java Smart Card I/O(Java JDK 的一部分)

于 2013-01-10T19:11:02.473 回答
1

这是一些使用pyscard并通过从Patrick's answer发送 APDU 来打印 UID(使用断言代替实际错误处理)的快速而肮脏的 Python 代码。

from smartcard.scard import *

hresult, hcontext = SCardEstablishContext(SCARD_SCOPE_USER)

assert hresult==SCARD_S_SUCCESS

hresult, readers = SCardListReaders(hcontext, [])

assert len(readers)>0

reader = readers[0]

hresult, hcard, dwActiveProtocol = SCardConnect(
    hcontext,
    reader,
    SCARD_SHARE_SHARED,
    SCARD_PROTOCOL_T0 | SCARD_PROTOCOL_T1)

hresult, response = SCardTransmit(hcard,dwActiveProtocol,[0xFF,0xCA,0x00,0x00,0x00])

print(response)
于 2014-11-01T11:54:20.640 回答