2013-01-11 115 views
2

我已經寫了一個簡單的應用程序(C#),以便通過我的智能卡閱讀器(顯然,我使用了一些Win API封裝)在我的Mifare卡上執行一些I/O操作。獲取Mifare卡片類型

關於我得到的mifare的唯一信息是「Mifare 1k」),但有什麼方法可以知道我的mifare卡的確切類型嗎? (例如它可以是經典,DESFire,Plus,Ultralight ..)?

或者我的應用程序返回的Mifare 1k描述意味着它只是一個經典的Mifare?

+0

在Mifare網站上是否有任何技術信息? – halfer

+1

這很可能是一個「經典」。 –

回答

3

Vikky是對的。在卡的ATR中,您會發現哪種卡類型是正確的。

看看這個: http://www.acs.com.hk/drivers/eng/API_ACR122U_v2.00.pdf

在6頁你有ATR結構/格式。第15和第16字節是de卡名稱(類型)

如果您獲得「Mifare 1k」是指MiFare Classic 1K。 希望這可以幫助你。

+0

我認爲這些是第13和第14個字節(如果我從0開始計數)。 – 2013-09-26 08:04:22

+0

實際上,這種方式仍然不足以在MIFARE Classic和MIFARE Plus之間進行區分。 – kdmin

0

您可以找到該卡的ATR(應答重置)並分析該ATR以查找卡類型。

假設ATR是圖3b 8F 80 01 80 4F 00 00 00 00 03 00 00 02 00 00 00 00 69(未真實)

如果atrLength-爲0x6 = 1然後把Mifare 1K

atrLength-0x6從= 2然後Mifare 4K

+0

這很有用 - 所以在你的例子中(從右向左讀)第6個字節告訴我們這是MiFare 4k(02) - 如何判斷它的MiFare 4K 4字節或Mifare 4K 7字節? – contool