مجموعة الاختبار العامة
ادعاءاتنا بشأن توافق الماسحات لا تكون جيدة إلا بقدر الأدلة التي تستند إليها. هذه الصفحة هي مجموعة البيانات, المدخلات التي نختبر عليها عائلات المشفِّرات لدينا بشكل انحداري، بالإضافة إلى سلوك كاميرا الهاتف الذي يمكنك تدقيقه بنفسك.
تنزيل corpus.zip بيانات JSON + CSV + منهجية + README. ~4 KB.
Loading version…
كيفية استخدام المجموعة
كل متجه اختبار موجود في /test-vectors/fixtures.json. كائن JSON واحد لكل نوع. يُجلب مباشرة من الموقع.
خذ خريطة fields لأي بيانات، ضع القيم في المولّد لذلك النوع، واضغط توليد.
وجّه iPhone Camera أو Android Camera أو Google Lens أو ماسحًا صناعيًا نحو رمز QR المُنشأ. تأكد أن النص المفكوك يحتوي على كل سلسلة فرعية expect.
إذا أعاد ماسح في أجهزتك فكًّا لا يتطابق مع البيانات، أفِد بمشكلة. سنعيد إنتاجها ونضيف ماسحك إلى مصفوفة التوافق العامة وإذا كانت خطأ في المشفِّر نشحن إصلاحًا.
نتائج المسح المتوقعة
تُعرض من نفس مجموعة البيانات التي تُعرض منها مصفوفة التوافق وسطر "يعمل على" في كل صفحة نوع، لذا لا يمكن أن تتعارض الثلاثة. ملف المتجهات الكامل في /test-vectors/ يحتوي على 33 إدخالًا، واحد لكل عائلة مشفِّر نختبرها بشكل انحداري؛ إنه ليس صفًا واحدًا لكل نوع منتج، ولا نزعم ذلك.
| النوع | مدخل الاختبار | iPhone Camera | Android Camera | ماسح احترافي |
|---|---|---|---|---|
| URL | https://example.com/test | يفتح الرابطA1 | يفتح الرابطA5 | يفكّA8 |
| WiFi | WIFI:S:MyNet;T:WPA;P:...;; | ينضم إلى الشبكةA1 | ينضم إلى الشبكةA5 | يفكّ الحمولةA8 |
| WiFi Enterprise (EAP) | WPA2-EAP PEAP identity=alice@corp | iOS 17 فأحدث، تم الإبلاغU | يفكّ؛ الانضمام يعتمد على الشركة المصنّعةU | يفكّ الحمولةQ |
| vCard | FN=Alice ORG=Acme ... | إضافة إلى جهات الاتصالA1 | إضافة إلى جهات الاتصالA5 | يفكّ الحمولةA8 |
| TOTP | otpauth://totp/...?secret=JBSW... | يقرأه تطبيق المصادقةA9, A10 | يقرأه تطبيق المصادقةA9, A10 | يفكّ الرابطA8 |
| eSIM | LPA:1$rsp.example.com$K2-LM... | يُهيَّئ من iOS 17.4 فأحدثA4 | يُهيَّئ من Android 13 فأحدثU | يفكّ الرابطQ |
| Bitcoin (BIP-21) | bitcoin:1A1zP1eP... | يفتح تطبيق المحفظةQ | يفتح تطبيق المحفظةQ | يفكّ الرابطQ |
| SEPA (EPC) | BCD header + name + IBAN + amount | نص خام فقطQ | نص خام فقطQ | يفكّ النص الخامQ |
| Swiss QR-bill | SPC header + IBAN + address + amount | نص خام فقطQ | نص خام فقطQ | يفكّ النص الخامQ |
| Micro QR | Compact payload | لا يفكّV, U | لا يفكّG | قارئات صناعيةZ |
| rMQR | Rectangular payload | لا يفكّU | لا يفكّG | برامج ثابتة أحدث من Zebra وScandit وCognexZ |
| GS1 Digital Link | https://id.gs1.org/01/09506000134352 | يفتح الرابطQ | يفتح الرابطQ | يُحلّل برنامج نقاط البيع عناصر التطبيقQ |
| Aztec | Arbitrary payload | لا يفكّA2 | Google Lens، بعض الأنواعA7 | أصليA8 |
| Data Matrix | Arbitrary payload | لا يفكّA2 | Google LensA6 | أصليA8 |
| PDF417 | AAMVA or arbitrary | لا يفكّA2 | Google Lens، بشكل متفاوتA7 | أصليA8 |
| AAMVA driver license | @\n\x1e\rANSI 636014100002DL... | تدفق مدرك للرخصة من iOS 17 فأحدثA3 | تطبيقات مدركة للرخص فقطU | أصليA8 |
| EAN-13 / UPC-A | 0012345678905 | لا يفكّAp | Google LensG | كل نقاط بيع التجزئةA8 |
| Code 128 | ABC-123 | لا يفكّAp | Google LensG | أصليA8 |
كيف تُقرأ العلامات
- ✓: تقرأه الكاميرا الافتراضية دون تطبيق إضافي
- ~: تقرأه بشرط مذكور في الخلية (تطبيق معين، أو إصدار نظام تشغيل، أو وضع معين)
- ✗: لا يفكّه؛ تحتاج تطبيق ماسح أو جهازًا مخصصًا
الدليل
- 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
ماذا تعني "نتيجة المسح المتوقعة"
- يفكّ, يفكّ.
- جزئي, جزئي, يعتمد على تطبيق أو إصدار نظام تشغيل معين.
- لا يفكّ, لا يفكّ, الكاميرا الأصلية لا تُعيد شيئًا. يتطلب ماسحًا متخصصًا.
- الحروف الصغيرة بعد كل نتيجة تُسمّي الدليل: حرف A متبوعًا برقم هو صف من سجل التصديق أدناه؛ الحروف الأخرى هي وثائق مورّدين، مُدرجة تحت كل جدول. الحرف U يعني أننا لم نُخضع تلك الخلية لأجهزتنا الخاصة بعد.
ملاحظات المنهجية
- Every fixture round-trips. CI generates each code in headless Chromium, decodes via
BarcodeDetector, asserts substring match. - Scanner results are from manual testing on real devices. iPhone 15 Pro / iOS 18.3, Pixel 8 / Android 14, Zebra DS8100.
- We publish negative results. iPhone refusing Data Matrix is "No decode", not rebrandled as "native reader."
- The corpus is versioned. يُسجّل سجل التغييرات كل تغيير على المتجهات، ويحمل corpus.VERSION.txt بصمة ملف المتجهات الذي بُني منه ملف ZIP الحالي.
سجل تصديق أسطول الماسحات
كل تشغيل يدوي على جهاز، مؤرَّخ. تُضاف الصفوف عند اقتناء جهاز جديد أو عند إبلاغ مستخدم عن تناقض؛ النتيجة لا تتغير أبدًا بصمت، بل تحصل على صف جديد.
| # | 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 | لا شيء يفكّ محليًا (متوقع، انظر /standards/non-qr-2d/) |
| A3 | iPhone 15 Pro | iOS 18.3, native Camera | AAMVA PDF417 | partial | 2026-04-10 | تدفق مدرك للرخصة من iOS 17 فأحدث يعرض الإضافة إلى Wallet؛ لا يُعاد PDF417 الخام |
| A4 | iPhone 15 Pro | iOS 18.3, Wallet | eSIM LPA | pass | 2026-04-12 | يعمل تدفق إضافة eSIM بشكل صحيح |
| 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 | بعض الأنواع تُفكّ؛ الدعم غير منتظم |
| A8 | Zebra DS8100 | firmware CAAACS00-002-R06 | All 2D + 1D fixtures | pass | 2026-04-11 | ماسح تصوير صناعي، المرجع القياسي |
| A9 | Google Authenticator | v7.0+ (iOS/Android) | TOTP, HOTP | pass | 2026-04-12 | SHA-1 فقط، 6 أرقام (يتجاهل معاملات الخوارزمية/الأرقام وفق ملف Google الفعلي) |
| A10 | 1Password | v8 (iOS/Android/macOS) | TOTP, HOTP | pass | 2026-04-12 | دعم كامل لـRFC بما يشمل SHA-256 وSHA-512 و8 أرقام |
ما هو قادم
- Pre-rendered artifacts. Future revision adds pre-rendered SVG + PNG per fixture for scanner-fleet harnesses.
- Scanner-fleet attestation. سجل الأجهزة المؤرَّخ منشور على هذه الصفحة وينمو مع كل جهاز نتحقق منه.
- Third-party verification. Independent security lab run pending; report publishes here on arrival.