EETIUM ELECTRONICS JSC

Đọc thẻ căn cước công dân gắn chip

Cắm đầu đọc vào máy rồi bấm Kết nối. Không cài phần mềm, không cần quyền quản trị.

Chưa kết nối thiết bị
Ảnh chân dung trong chip
Dữ liệu thẻ không rời khỏi máy này Trang chạy hoàn toàn trong trình duyệt. Thông tin và ảnh đọc từ chip đi thẳng từ đầu đọc vào bộ nhớ trình duyệt rồi hiện lên màn hình — không có máy chủ nào ở giữa.
Và đây không phải lời hứa suông: trang khai connect-src 'none' nên trình duyệt cưỡng chế chặn mọi kết nối mạng của trang, kể cả khi mã nguồn có muốn gửi. Mở DevTools → Network trong lúc đọc thẻ sẽ thấy trống.
Cần chạy hoàn toàn ngoại tuyến hoặc trên hạ tầng của riêng quý khách? Tệp này là một tệp HTML duy nhất, không phụ thuộc gì bên ngoài: tải về rồi bấm đúp mở bằng Chrome/Edge, hoặc đặt lên máy chủ nội bộ — xem Dành cho bộ phận CNTT ở cuối trang.
Dành cho bộ phận CNTT

Trang này làm gì. Gửi một lệnh đọc xuống đầu đọc qua WebUSB và vẽ kết quả trả về. Toàn bộ mật mã và việc bóc dữ liệu thẻ chạy trong đầu đọc; tệp này không chứa hằng số mật mã nào. Không CDN, không thư viện, không phông chữ tải về — một tệp, đọc hết được.

Kiểm chứng "không gửi đi đâu". Dòng đầu tệp: connect-src 'none' — Content Security Policy do trình duyệt cưỡng chế: không fetch, XHR, WebSocket, beacon. Mở DevTools → Network trong lúc đọc thẻ: danh sách trống.

Chạy ngoại tuyến. Tải tệp về, bấm đúp mở bằng Chrome hoặc Edge — chạy từ file://, không cần máy chủ, không cần Internet. Lưu ý: mọi tệp mở bằng file:// dùng chung một nguồn gốc, nên quyền truy cập đầu đọc sau khi cấp áp cho mọi tệp HTML trên máy đó (vẫn phải có thẻ đặt trên đầu đọc và số trên mặt thẻ mới đọc được).

Đặt lên máy chủ nội bộ. Chép tệp vào thư mục web (nginx / IIS / Apache) — bắt buộc HTTPS, chứng chỉ nội bộ do CA của quý khách cấp là đủ. Không PHP, không database, không tiến trình nền. Quyền truy cập thiết bị được trình duyệt nhớ theo địa chỉ trang: chọn địa chỉ cố định ngay từ đầu.

Máy người dùng. Windows 10/11 và macOS: không cài gì. Android: cáp OTG. Linux: tạo /etc/udev/rules.d/60-eetium.rules với hai dòng dưới (tên tệp phải bắt đầu bằng 60-), rồi sudo udevadm control --reload && sudo udevadm trigger, rút cắm lại đầu đọc. Trình duyệt: Chrome, Edge hoặc Opera. Firefox, Safari và mọi trình duyệt trên iPhone/iPad không hỗ trợ WebUSB.

SUBSYSTEM=="usb", ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="f001", MODE="660", GROUP="plugdev", TAG+="uaccess"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="000f", MODE="660", GROUP="plugdev", TAG+="uaccess"

Tích hợp phần mềm riêng. Giao thức của đầu đọc là JSON một dòng trên USB bulk, lớp vendor 0xFF — dùng được từ C#, Python, Java qua WinUSB / libusb. Liên hệ EETIUM để nhận đặc tả.

Báo lỗi. Mở mục Nhật ký kỹ thuật bên dưới và gửi kèm nội dung — có phiên bản firmware, số máy và trao đổi với thiết bị; không có số định danh hay dữ liệu thẻ.

Nhật ký kỹ thuật