用pyscard读取序列号mifare

时间:2011-11-03 07:01:26

标签: python ubuntu mifare

我正在尝试用mifare卡读取序列ID。 我可以使用pyscard中的atr。但是当我使用mulitiple卡时,他会给出同样的身份。

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

请它非常有帮助

由于

3 个答案:

答案 0 :(得分:5)

您应该使用APDU命令来实现此目的。 在mifare卡的情况下,获取UID的命令是0xFF,0xCA,0x00,0x00,0x00。

关注this link并查看高级API。这应该会给你一个想法。

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

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)