2013-07-12 66 views
9

Tôi cần đọc số sê-ri thẻ MiFare trong WinSCard. Tôi có thể đọc 7B UID từ thẻ MiFare.MiFare - Sự khác biệt giữa UID và số sê-ri của thẻ MiFare

Sự nhầm lẫn là tôi không biết liệu số UID và số sê-ri MiFare có giống nhau không? !!

Tôi đã giải quyết vấn đề nhưng chỉ có thể đạt được một phần thành công. Tôi tìm thấy một question trên stackoverflow cũng nhưng nó đã không giúp đỡ.

Tôi tìm thấy số document của NXP trực tuyến có nội dung UID và số sê-ri khác nhau. (trên trang số 3, dòng số 5)

Có một ứng dụng của OmniKey đọc số sê-ri của thẻ và nó cũng chỉ trả về UID.

NXP tài liệu nói UID <> Serial Number và một ứng dụng OmniKey tiêu chuẩn khác trả UID như Serial Number.

Tôi đã bắt đầu giải quyết vấn đề này. Tôi rất cảm kích nếu có ai có thể giúp đỡ.

+2

Thẻ MiFare không có số sê-ri có thể đọc được. Họ chỉ có một UID. Lý do tại sao bạn nhầm lẫn là, không phải ai cũng biết UID là gì, nhưng mọi người đều biết số sê-ri là gì. Do đó UID thường được gọi là serial. NXP cố gắng làm rõ điều đó nhưng thêm nhiều sự nhầm lẫn hơn bằng cách ngụ ý một chuỗi tồn tại. Các tài liệu từ NXP là gây hiểu lầm khủng khiếp bằng cách này. –

+0

Vậy id duy nhất có thể đọc được là UID này? Tôi có thể đọc UID bằng WinSCard. Và nếu số sê-ri không thể đọc được, thì điểm cung cấp chúng là gì? #JustCurious :-) –

+1

Trích dẫn đầy đủ từ tài liệu đó là "UID không phải là" số sê-ri ", mà là số nhận dạng duy nhất. Không có đề xuất cách chuyển mảng byte thành số nguyên." Họ đang chỉ ra rằng việc chuyển đổi thành * số * không phải là thứ mà họ đang xác định và có thể được thực hiện theo nhiều cách khác nhau (ví dụ: nhỏ bé và người lớn) – Eric

Trả lời

14

Mỗi thẻ thông minh chứa một chip tích hợp với số nhận dạng vĩnh viễn (UID) duy nhất được ghi trong quá trình sản xuất. UID này thường được gọi là Số sê-ri thẻ (CSN). Số sê-ri của thẻ không được mã hóa và bất kỳ đầu đọc nào tuân thủ ISO đều có thể đọc số sêri thẻ.

Sửa 1:

Mifare Card Serial Number là định danh duy nhất được định nghĩa trong ISO 14443-3A. Có 3 loại UID được định nghĩa trong tiêu chuẩn - đơn (4Byte), Double (7 byte) và Triple (10 byte). Chỉ các phiên bản cũ của thẻ Mifare, UID là 4 byte nhưng giờ đã di chuyển đến 7 byte.

EDIT 2: Nó có thể là hữu ích cho bạn ...

What is the difference between a 4 Byte UID and a 4 Byte ID? 

A 4 byte UID là một định danh đã được phân công của nhà sản xuất card sử dụng một cơ sở dữ liệu có kiểm soát. Cơ sở dữ liệu này đảm bảo rằng số nhận dạng đơn không được sử dụng hai lần. Trong mâu thuẫn, ID 4 byte là mã định danh có thể được gán cho nhiều hơn một chip không tiếp xúc trên thời gian sản xuất của sản phẩm sao cho nhiều thẻ có cùng một được xác định có thể được triển khai vào một hệ thống không tiếp xúc cụ thể.

+0

Có tôi biết điều này. Nhưng tài liệu chính thức của NXP cho biết UID và Serial Number là hai thứ khác nhau. Vì vậy, chỉ có tôi bối rối. –

+0

Xem phần chỉnh sửa ... – vikky

+0

Tôi đã truy cập liên kết bạn đã đề cập trong câu trả lời. Nhưng liên kết không chứa câu trả lời cho "UID = Số sê-ri?" :-( –

3

Sự khác biệt trong trường hợp này xuất phát từ thực tế là "Số sê-ri" ngụ ý rằng các số là một chuỗi, do đó được gán tuần tự.

Thẻ MIFARE có số nhận dạng duy nhất (hoặc trong UID ngắn), được tạo bởi quy tắc nội bộ không nhất thiết phải tuần tự. Điều này có nghĩa là nếu bạn thấy một thẻ có UID 01020304050607 thì điều đó không có nghĩa là có ít nhất là nhiều thẻ được sản xuất cho đến thời điểm này.

Nếu bạn từng thấy ai đó đề cập đến Số sê-ri thẻ, thực tế họ đang đề cập đến UID.

Sự nhầm lẫn cuối cùng chỉ có thể đến từ thực tế là thẻ MIFARE có thể được định cấu hình để trả về ID ngẫu nhiên trong khi kích hoạt. Nếu đúng như vậy, bạn sẽ nhận được "UID" khác nhau mỗi khi bạn kích hoạt thẻ. Trong trường hợp đó, bạn cần phải đọc dữ liệu chứa trong khối 0 (mà bạn sẽ cần phải biết khóa đến sector 0) để có được UID thực của thẻ.

+0

Cảm ơn những nỗ lực của bạn bởi câu hỏi của tôi vẫn đứng cao :( –