用Python读取RFID卡中的唯一ID
我有一个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标签都是一样的。这个atr的内容是:
3B 8F 80 01 80 4F 0C A0 00 00 03 06 03 00 01 00 00 00 00 6A
我该如何从卡片中读取一些独特的信息呢?我知道我需要发送一些命令,回复中会包含UID(唯一标识符),但我该如何找到这些命令呢?我又该如何发送它们呢?
谢谢!
1 个回答
3
一旦你连接上了卡片(其实是读卡器),你就可以发送一个标准的命令来从读卡器获取卡片的唯一标识符(UID):
FF CA 00 00 00