2012-10-24 35 views
6

Tôi đang tìm APDU để tìm UID của thẻ liên lạc ít hơn thẻ thông minh ISO 14443 và cách sử dụng nó để in trong thiết bị đầu cuối Linux. Vấn đề là tôi thấy nhiều người nói về nó, nhưng không có giải pháp. Bất cứ ai có thể giúp đỡ là vấn đề này? Cảm ơnLệnh APDU để nhận thẻ thông minh uid

Trả lời

7

Xem other answer, có khả năng hầu hết người đọc đều hỗ trợ chuyển đến trình đọc thẻ ngay bây giờ.


Không ai có thể giúp UID được chỉ định trong giao thức truyền tải tiêu chuẩn ISO 14443 T = CL trong khi APDU được chỉ định trong giao thức lớp ứng dụng ISO 7816.

Vì vậy, bạn cần truy cập vào API cấp thấp hơn cho trình đọc không tiếp xúc của bạn. PCSC sẽ không đủ (trừ khi đã có một thông qua thực hiện cho người đọc cụ thể trả về UID).

+0

Vì vậy, những gì có thể là cách tốt để đọc UID của thẻ thông minh khi làm việc với PCSC -Lite? – Salman

+0

Tôi sẽ có một cái nhìn tại các thư viện đọc cơ bản. PCSC ban đầu được tạo cho người đọc liên lạc. Vấn đề là bất cứ điều gì ngoài PCSC có thể là trình điều khiển độc quyền. –

+0

'UID' có cụ thể cho mỗi thẻ ít liên lạc trên thế giới không? (nghĩa là không có hai thẻ khác nhau có UID bằng nhau?) Có phải nó đã được cố định hoặc là một số ngẫu nhiên mỗi phiên không? Tại sao chúng ta cần nó? Chỉ dành cho cơ chế Chống va chạm? – Abraham

9

"Lấy lệnh dữ liệu" được xác định trong PCSC 3 v2. Nếu trình điều khiển của bạn là PCSC v2 tuân thủ, bạn có thể nhận UID sử dụng nó:

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) 

giá trị trả lại là:

Data+SW1SW2 
+0

Lệnh Linux để đọc UID bằng cách sử dụng opensc: opensc-tool --send-apdu FF: CA: 00: 00: 00 - đang chờ –

+0

Cảm ơn @nchokoev! Giải quyết vấn đề của tôi với pcsclite (nút thích ứng) – Stilmittel

Các vấn đề liên quan