2017-01-31 119 views
1

我目前正在製作一個項目,我想使用具有NFC功能的Windows 10手機讀取智能卡的UID /序列號以查找ID一個人。我試圖從中獲取UID /序列號的卡片是恩智浦MIFARE DESFire EV1。我正在查找的ID打印在卡上,我設法使用我的朋友的手機訪問它的Android應用程序,這意味着該號碼是可訪問的,雖然我不知道如何。獲取恩智浦MIFARE DESFire EV1卡的UID /序列號

我能夠發送APDU命令到卡,但我不知道哪一個用來獲得我正在尋找的UID /序列號。

我需要發送哪些APDU命令到卡上以獲取ID?我要查找的ID是7個字節。

+0

對不起,閱讀非智能卡強烈依賴於讀者的翻譯服務,你沒有提到一個。您可能會在[此問題]中找到一個起點(http://stackoverflow.com/q/12174000/1435475)。 – guidot

回答

1

一般來說,檢索非接觸卡的參數如防碰撞標識符(UID)很大程度上取決於閱讀器和讀卡器與應用程序之間的抽象層。例如,在Android上,有一個簡單的方法來獲取NFC標籤/非接觸式智能卡的防衝突標識符。

但是,對於MIFARE DESFire,還有一種方法可以通過APDU獲取該參數。你可以簡單地發送GET version命令來查詢版本信息(以及卡UID):

 
C-APDU: 90 60 0000 00 
R-APDU: 04 01 YY 01 00 ZZ 05 91AF 

C-APDU: 90 AF 0000 00 
R-APDU: 04 01 01 01 04 ZZ 05 91AF 

C-APDU: 90 AF 0000 00 
R-APDU: XXXXXXXXXXXXXX UUUUUUUUUU VV WW 9100 

XXXXXXXXXXXXXX是卡的UID(或全部爲零,如果該卡是隨機的防碰撞識別模式)。

請注意,甚至存在針對MIFARE DESFire版本信息的解析器here(如在註釋中指出的ThomasRS)。

+1

完美的作品。非常感謝你的寶貴時間。你不知道這將會對他人有多大的幫助。我永遠不會忘記你 – ZakFS

+2

解析器在https://github.com/skjolber/external-nfc-api/blob/master/externalNFCClient/src/main/java/com/skjolberg/nfc/desfire/VersionInfo.java – ThomasRS