2017-01-31 5 views
1

Ich mache gerade ein Projekt, bei dem ich mein Windows 10-Telefon mit NFC zum Lesen der UID/Seriennummer einer Smartcard verwenden möchte, um die ID von zu finden eine Person. Die Karte, von der ich versuche, die UID/Seriennummer zu erhalten, ist ein NXP MIFARE DESFire EV1. Die ID, nach der ich suche, ist auf der Karte aufgedruckt und ich habe es über das Telefon meines Freundes mit einer Android-App erreicht, was bedeutet, dass die Nummer erreichbar ist, obwohl ich nicht weiß, wie.Ermitteln der UID/Seriennummer einer NXP MIFARE DESFire EV1-Karte

Ich kann APDU-Befehle an die Karte senden, aber ich weiß nicht, welchen ich verwenden soll, um die UID/Seriennummer zu bekommen, die ich suche.

Welche APDU-Befehle muss ich an die Karte senden, um die ID zu erhalten? Die ID, die ich suche, ist 7 Bytes lang.

+0

Entschuldigung, das Lesen von nicht-Smart Cards ist stark abhängig von den Übersetzungsdiensten des Lesers und Sie haben keinen erwähnt. Sie können einen Ausgangspunkt in [dieser Frage] (http://stackoverflow.com/q/12174000/1435475) finden. – guidot

Antwort

1

Im Allgemeinen hängt das Abrufen von Parametern wie der Anti-Kollisions-Kennung (UID) von kontaktlosen Karten sehr vom Leser und den Abstraktionsschichten zwischen dem Leser und Ihrer Anwendung ab. Zum Beispiel gibt es auf Android gibt es eine einfache Methode getId(), um die Antikollisions-Kennung eines NFC-Tags/kontaktlose Smartcard zu erhalten.

Für MIFARE DESFire gibt es jedoch auch eine Möglichkeit, diesen Parameter über APDUs zu erhalten. Sie können einfach eine GET VERSION Befehl abfragen Versionsinformationen (und auch die Karte UID) senden:

 
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 

Der Wert XXXXXXXXXXXXXX ist die UID der Karte (oder alle Nullen, wenn die Karte in zufälliger Anti-Kollisions-Kennung Modus).

Beachten Sie, dass es sogar einen Parser für die MIFARE DESFire Versionsinformation here (wie ThomasRS in einem Kommentar hingewiesen) gibt.

+1

Funktioniert perfekt. Vielen Dank für Ihre wertvolle Zeit. Sie haben keine Ahnung, wie hilfreich für mich und für andere das sein wird. Ich werde dich nie vergessen – ZakFS

+2

Parser bei https://github.com/skjolber/external-nfc-api/blob/master/externalNFCClient/src/main/java/com/skjolberg/nfc/desfire/VersionInfo.java – ThomasRS

Verwandte Themen