从Python中的RFID卡读取唯一的ID

2024-09-28 22:34:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Omnike5321智能卡读卡器,和一台带Debian的电脑。下面的Python代码读取卡片:

from smartcard.CardMonitoring import CardMonitor, CardObserver
from smartcard.util import *
import sys

class printobserver( CardObserver ):
    def update( self, observable, (addedcards, removedcards) ):
        for card in addedcards:
            print "+Inserted: ", toHexString( card.atr )
        for card in removedcards:
            print "-Removed:  ", toHexString( card.atr )

try:
    print "Insert or remove a smartcard in the system."
    print ""
    cardmonitor = CardMonitor()
    cardobserver = printobserver()
    cardmonitor.addObserver( cardobserver )
    raw_input('Press Enter to exit\n')
except:
    print "Unexpected error: ", sys.exc_info()[0]

Python代码运行得很好,但是对于许多卡,它返回了相同的atr标记。给定的atr为:

3B 8F 80 01 80 4F 0C A0 00 00 03 06 03 00 01 00 00 00 00 6A

我怎么能从卡片上读到唯一的东西?我知道我必须发送一些命令,并且回复将包含UID,但是如何才能找到这些命令?我要怎么送呢?在

谢谢!在


Tags: infromimportforsyscardprintatr