2012-10-24 29 views

Odpowiedz

7

Zobacz prawdopodobnie other answer, że większość czytelników obsługuje teraz przejście do czytnika kart już teraz.


Nikt nie może pomóc w UID jest określony w normie ISO 14443 protokołu transportowego T = Cl, a APDU określone są w protokole warstwy aplikacji ISO 7816.

Potrzebujesz dostępu do API niższego poziomu dla czytnika zbliżeniowego. PCSC nie będzie wystarczający (chyba że zaimplementowano przejście dla konkretnego czytnika, który zwraca UID).

+0

Więc, co mogłoby być możliwe sposób odczytać UID karty inteligentnej podczas pracy z PCSC -Lite? – Salman

+0

Chciałbym rzucić okiem na podstawowe biblioteki czytelników. Początkowo PCSC był stworzony dla czytników kontaktów. Problem polega na tym, że cokolwiek poza PCSC może być prawnie zastrzeżonymi sterownikami. –

+0

Czy "UID" jest specyficzny dla każdej karty bezstykowej na świecie? (tzn. czy nie ma dwóch różnych kart o identycznym UID?) Czy jest on stały, czy jest to liczba losowa na sesję? Dlaczego tego potrzebujemy? Tylko dla mechanizmu antykolizyjnego? – Abraham

9

"Polecenie pobierania danych" zdefiniowane jest w PCSC 3 v2. Jeśli kierowca jest PCSC v2 zgodny, można uzyskać UID używając go:

Class = 0xFF 
INS = 0xCA 
P1 = 0x00 
P2 = 0x00 
Le = 0x00 (return full length: ISO14443A single 4 bytes, double 7 bytes, triple 10 bytes, for ISO14443B 4 bytes PUPI, for 15693 8 bytes UID) 

Wartość zwracana jest:

Data+SW1SW2 
+0

Polecenie Linuksa do odczytu UID przy użyciu opensc: opensc-tool --send-apdu FF: CA: 00: 00: 00 - zrób to –

+0

Dzięki @nchokoev! Rozwiązałem mój problem z pcsclite (adaptacja węzła) – Stilmittel