Kho kiểm thử công khai
Các tuyên bố về tương thích máy quét của chúng tôi chỉ đáng tin cậy bằng bằng chứng làm nền tảng. Trang này là corpus, các đầu vào mà chúng tôi chạy kiểm tra hồi quy trên từng họ encoder của mình, cộng với hành vi camera điện thoại mà bạn có thể tự kiểm tra mà không cần tin vào lời chúng tôi.
Tải xuống corpus.zip Gói fixtures JSON + CSV + phương pháp + README. ~4 KB.
Đang tải phiên bản…
Cách sử dụng corpus
Mỗi vector kiểm tra nằm trong /test-vectors/fixtures.json. Một đối tượng JSON mỗi loại với các trường đầu vào và substring giải mã dự kiến. Lấy trực tiếp từ trang này, không có bản sao lỗi thời.
Lấy bản đồ fields của bất kỳ fixture nào, nhập các giá trị vào bộ tạo cho loại đó, và nhấn Tạo. QR kết quả giống từng bit với những gì CI của chúng tôi dùng để kiểm tra vòng lặp.
Hướng iPhone Camera, Android Camera, Google Lens, máy quét công nghiệp (Zebra, Honeywell, Datalogic), hoặc thiết bị đọc dành cho ứng dụng (ứng dụng ngân hàng, ứng dụng xác thực) vào QR đã tạo. Xác nhận văn bản được giải mã có chứa mọi substring expect cho fixture đó.
Nếu máy quét trong đội của bạn trả về kết quả giải mã không khớp với fixture, hãy tạo báo cáo lỗi. Chúng tôi sẽ tái hiện, thêm máy quét của bạn vào ma trận tương thích công khai, và (nếu là lỗi encoder) gửi bản sửa lỗi.
Kết quả quét dự kiến
Được dựng từ cùng tập dữ liệu với ma trận tương thích và dòng "Quét được trên" của mỗi trang loại, nên ba nơi này không thể mâu thuẫn nhau. Tệp fixture đầy đủ tại /test-vectors/ có 33 mục, mỗi mục cho một họ encoder mà chúng tôi kiểm tra hồi quy; đây không phải một dòng cho mỗi loại sản phẩm, và chúng tôi không tuyên bố như vậy.
| Loại | Đầu vào fixture | iPhone Camera | Android Camera | Máy quét chuyên nghiệp |
|---|---|---|---|---|
| URL | https://example.com/test | Mở liên kếtA1 | Mở liên kếtA5 | Giải mã đượcA8 |
| WiFi | WIFI:S:MyNet;T:WPA;P:...;; | Kết nối mạngA1 | Kết nối mạngA5 | Giải mã payloadA8 |
| WiFi Enterprise (EAP) | WPA2-EAP PEAP identity=alice@corp | iOS 17+, đã ghi nhậnU | Giải mã được; việc kết nối tùy vào nhà sản xuấtU | Giải mã payloadQ |
| vCard | FN=Alice ORG=Acme ... | Thêm vào Danh bạA1 | Thêm vào Danh bạA5 | Giải mã payloadA8 |
| TOTP | otpauth://totp/...?secret=JBSW... | Ứng dụng xác thực đọc đượcA9, A10 | Ứng dụng xác thực đọc đượcA9, A10 | Giải mã URIA8 |
| eSIM | LPA:1$rsp.example.com$K2-LM... | iOS 17.4+ cấp phátA4 | Android 13+ cấp phátU | Giải mã URIQ |
| Bitcoin (BIP-21) | bitcoin:1A1zP1eP... | Ứng dụng ví mởQ | Ứng dụng ví mởQ | Giải mã URIQ |
| SEPA (EPC) | BCD header + name + IBAN + amount | Chỉ chuỗi thôQ | Chỉ chuỗi thôQ | Giải mã chuỗi thôQ |
| Swiss QR-bill | SPC header + IBAN + address + amount | Chỉ chuỗi thôQ | Chỉ chuỗi thôQ | Giải mã chuỗi thôQ |
| Micro QR | Compact payload | Không giải mã đượcV, U | Không giải mã đượcG | Thiết bị đọc công nghiệpZ |
| rMQR | Rectangular payload | Không giải mã đượcU | Không giải mã đượcG | Firmware Zebra, Scandit và Cognex đời mớiZ |
| GS1 Digital Link | https://id.gs1.org/01/09506000134352 | Mở URLQ | Mở URLQ | Firmware POS phân tích các AIQ |
| Aztec | Arbitrary payload | Không giải mã đượcA2 | Google Lens, một số biến thểA7 | GốcA8 |
| Data Matrix | Arbitrary payload | Không giải mã đượcA2 | Google LensA6 | GốcA8 |
| PDF417 | AAMVA or arbitrary | Không giải mã đượcA2 | Google Lens, không ổn địnhA7 | GốcA8 |
| AAMVA driver license | @\n\x1e\rANSI 636014100002DL... | Luồng nhận dạng bằng lái iOS 17+A3 | Chỉ ứng dụng nhận dạng bằng láiU | GốcA8 |
| EAN-13 / UPC-A | 0012345678905 | Không giải mã đượcAp | Google LensG | Mọi POS bán lẻA8 |
| Code 128 | ABC-123 | Không giải mã đượcAp | Google LensG | GốcA8 |
Cách đọc các dấu hiệu
- ✓: đọc được từ ứng dụng camera gốc, không cần ứng dụng bổ sung
- ~: đọc được trong một điều kiện nêu trong ô (một ứng dụng cụ thể, phiên bản hệ điều hành hoặc chế độ cụ thể)
- ✗: không giải mã được; bạn cần ứng dụng quét hoặc phần cứng chuyên dụng
Bằng chứng
- A: our own device test; the number is the row in the attestation log
- Ap: Apple's support page describes the Camera app and Code Scanner as reading QR codes and lists no other symbology
- G: Google Lens decodes the ML Kit barcode formats: Codabar, Code 39, Code 93, Code 128, EAN-8, EAN-13, ITF, UPC-A, UPC-E, Aztec, Data Matrix, PDF417 and QR Code; Micro QR and rMQR are not on the list
- Z: Zebra lists Micro QR and rectangular Micro QR among the DS8100 series' 2D symbologies
- V: Apple's Vision framework decodes Micro QR for third-party apps since iOS 15; that is a developer API, not the Camera app
- Q: a standard QR symbol, so decoding is the attested QR result; the question is what the phone does with the payload
- U: not in our attestation log yet; from vendor documentation or field reports, treat as provisional
Ý nghĩa của "kết quả quét dự kiến"
- Giải mã được, thiết bị đọc camera gốc của điện thoại trả về payload mà không cần ứng dụng riêng.
- Một phần, việc giải mã phụ thuộc vào một ứng dụng cụ thể (xác thực, ví, ngân hàng) hoặc phiên bản hệ điều hành cụ thể.
- Không giải mã được, camera gốc không trả về gì. Cần máy quét hoặc thiết bị đọc chuyên dụng.
- Các chữ cái nhỏ sau mỗi kết quả nêu tên bằng chứng: A cộng một số là một dòng trong nhật ký xác thực bên dưới; các chữ khác là tài liệu của nhà cung cấp, được liệt kê dưới mỗi bảng. Chữ U nghĩa là chúng tôi chưa tự kiểm tra ô đó qua thiết bị của mình.
Ghi chú phương pháp
- Mỗi fixture đều qua vòng lặp đầy đủ. CI của chúng tôi tạo từng mã trong Chromium không có giao diện, giải mã lại qua API
BarcodeDetectorcủa trình duyệt, và kiểm tra kết quả khớp substring. CI xanh có nghĩa là corpus nhất quán nội bộ. - Kết quả máy quét trong bảng này từ kiểm tra thủ công trên thiết bị thực. Không được tổng hợp. iPhone 15 Pro trên iOS 18.3, Pixel 8 trên Android 14, Zebra DS8100 imager trên firmware CAAACS00-002-R06.
- Chúng tôi công bố kết quả tiêu cực. Nếu iPhone Camera từ chối giải mã một ký hiệu học (Data Matrix, Aztec, PDF417), đó là "Không giải mã được" trong bảng, không đổi tên thành "thiết bị đọc gốc".
- Corpus được phiên bản hóa. Khi chúng tôi thêm loại hoặc sửa lỗi encoder, mục fixture tương ứng được gửi trong cùng commit. Nhật ký thay đổi ghi lại từng thay đổi fixture, và corpus.VERSION.txt mang mã băm của tệp fixture mà bản ZIP hiện tại được dựng từ đó.
Nhật ký xác thực đội máy quét
Mọi lần chạy thiết bị thủ công, có ngày tháng. Các dòng được thêm khi chúng tôi có thiết bị mới hoặc người dùng báo cáo sai lệch; một kết quả không bao giờ thay đổi âm thầm, nó sẽ nhận một dòng mới.
| # | Device | OS / app | Corpus slice | Result | Date | Notes |
|---|---|---|---|---|---|---|
| A1 | iPhone 15 Pro | iOS 18.3, native Camera | All QR fixtures | pass | 2026-04-10 | |
| A2 | iPhone 15 Pro | iOS 18.3, native Camera | Aztec, PDF417, Data Matrix | fail | 2026-04-10 | Không có cái nào giải mã gốc (đúng như dự kiến, xem /standards/non-qr-2d/) |
| A3 | iPhone 15 Pro | iOS 18.3, native Camera | AAMVA PDF417 | partial | 2026-04-10 | Luồng nhận dạng bằng lái iOS 17+ đề nghị Thêm vào Wallet; không trả về PDF417 thô |
| A4 | iPhone 15 Pro | iOS 18.3, Wallet | eSIM LPA | pass | 2026-04-12 | Luồng Thêm eSIM kích hoạt đúng |
| A5 | Pixel 8 | Android 14, native Camera | All QR fixtures | pass | 2026-04-10 | |
| A6 | Pixel 8 | Android 14, Google Lens | Data Matrix | pass | 2026-04-10 | |
| A7 | Pixel 8 | Android 14, Google Lens | Aztec, PDF417 | partial | 2026-04-10 | Một số biến thể giải mã được; hỗ trợ không ổn định |
| A8 | Zebra DS8100 | firmware CAAACS00-002-R06 | All 2D + 1D fixtures | pass | 2026-04-11 | Thiết bị đọc ảnh công nghiệp, tham chiếu chuẩn |
| A9 | Google Authenticator | v7.0+ (iOS/Android) | TOTP, HOTP | pass | 2026-04-12 | Chỉ SHA-1, 6 chữ số (bỏ qua tham số algorithm/digits theo hồ sơ mặc định trên thực tế của Google) |
| A10 | 1Password | v8 (iOS/Android/macOS) | TOTP, HOTP | pass | 2026-04-12 | Hỗ trợ đầy đủ RFC gồm SHA-256, SHA-512, 8 chữ số |
Sắp ra mắt
- Artifacts được render trước. ZIP hiện tại gộp fixtures + phương pháp + CSV. Phiên bản tương lai sẽ thêm SVG + PNG được render trước của từng fixture để bạn có thể đưa thẳng vào harness kiểm tra đội máy quét. Đang chờ bước trình duyệt không có giao diện tại thời điểm build.
- Chứng nhận đội máy quét. Nhật ký thiết bị có ngày tháng được công bố ngay trên trang này và tăng thêm mỗi lần chúng tôi xác minh với thiết bị mới.
- Xác minh bên thứ ba. Một phòng thí nghiệm bảo mật độc lập chạy corpus qua đội máy quét và công bố chứng nhận có chữ ký. Đang chờ, đã đặt hàng; báo cáo sẽ được công bố tại đây khi có.
Xem thêm
- /test-vectors/, fixture JSON đầy đủ và bảng có thể tìm kiếm.
- /compatibility/, ma trận tương thích máy quét trực tiếp.
- /standards/, trang tham khảo theo từng tiêu chuẩn.
- /print-size/, hướng dẫn in vật lý đi kèm corpus.