Считайте уникальный идентификатор с карты RFID в Python

У меня есть устройство чтения смарт-карт OmniKey 5321 и компьютер с 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 для многих карточек. Данный атр:

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

Как я могу прочитать что-то уникальное с карт? Я понимаю, что мне нужно отправить некоторые команды, и ответы будут содержать UID, но как я могу найти команды? Как я их отправлю?

Спасибо!


person Nagy Vilmos    schedule 12.03.2014    source источник


Ответы (1)


Подключившись к карте (точнее, к считывателю), вы можете отправить стандартизированную команду ПК/СК для получения UID карты от считывателя:

FF CA 00 00 00
person Michael Roland    schedule 13.03.2014