المقدمة
يصف هذا المستند معرفات ذكية، وهي نقوش مدمجة لفحص المحتوى تكشف أنواع معينة من البيانات. بالنسبة لهذا الإصدار، سيقوم النظام بتنفيذ معرفات ذكية لأرقام بطاقات الائتمان وأرقام الضمان الاجتماعي الأمريكية وأرقام CUSIP وأرقام توجيه ABA.
داخليا، يتكون المعرف الذكي من تعبير عادي يطابق سلاسل المرشح، مع وظيفة تحقق تحقق من مطابقة المرشح بطريقة ما. على سبيل المثال، تضمن وظيفة التحقق من صحة رقم بطاقة الائتمان صحة رقم الشيك.
ستتضمن التعبيرات المنتظمة لكل معرف ذكي نقاط ربط حدود الكلمات ('b') في كلا الطرفين. (يمنع هذا النظام من مطابقة رقم ضمان إجتماعي أمريكي، على سبيل المثال، في منتصف سلسلة أطول من الأرقام.) وللتبسيط، تحذف هذه من الأوصاف أدناه.
يجب أن يكون تنفيذ المعرفات الذكية حذرا من التطابقات المتداخلة، لأن السلسلة الفرعية التي تم العثور عليها من قبل التعبير العادي قد لا يتم التحقق من صحتها. على سبيل المثال، يقوم عامل تصفية بمسح أرقام بطاقات الائتمان بحثا عن أرقام مقابل السلسلة 9999 4321 999 999995 1234 5678 9000 بحثا عن رقم بطاقة الائتمان الصالح 4321 99999995، على الرغم من أن الفحص البسيط للتعبير العادي للأرقام المحتملة قد يجد 9994321 99999 و 99999999 و 999999999999999999999999999999999999999999999999999999 000.
أرقام بطاقات الائتمان
يبدأ رقم بطاقة الائتمان بنوع بطاقة طول متغير، يشير إلى ما إذا كان الرقم هو VISA أو MasterCard أو AMEX، وما إلى ذلك، وينتهي برقم شيك. تستخدم أنواع البطاقات المختلفة أرقام مختلفة من الأرقام في الرقم بالكامل، لكن حساب رقم الشيك هو نفسه في كل حالة.
لاحظ أن بطاقات enRoute أو JCB غير متطابقة. كما أن أرقام التأشيرات التي تتكون من 13 رقما غير موجودة، ولن تكون مطابقة في عملية التنفيذ التي نقوم بها.
ستطابق أرقام بطاقات الائتمان التي تحتوي على 16 رقما أحد التعبيرات المنتظمة التالية:
[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9] [0-9]{4}
[0-9]{4}\.[0-9]{4}\.[0-9]{4}\.[0-9]{4}\.[0-9]{4}
[0-9]{4} [0-9]{4} [0-9]{4} [0-9] [0-9]{4} [0-9]{4}
[0-9]{16}
مع كون البادئة "4" أو "51"-"55" أو "6011".
سوف تتطابق أرقام AMEX المكونة من 15 رقما مع أحد التعبيرات المنتظمة التالية:
[0-9]{4}-[0-9]{6}-[0-9]{5}
[0-9]{4}\.[0-9]{6}\.[0-9]{5}
[0-9]{4} [0-9]{6} [0-9]{5}
[0-9]{15}
مع كون البادئات المسموح بها هي "34" أو "37".
سوف تتطابق أرقام نادي "دينز" المكونة من 14 رقما مع أحد التعبيرات المنتظمة التالية:
[0-9]{4}-[0-9]{6}-[0-9]{4}
[0-9]{4}\.[0-9]{6}\.[0-9]{4}
[0-9]{4} [0-9]{6} [0-9]{4}
[0-9]{14}
مع كون البادئات المسموح بها هي "300"-"305" أو "36" أو "38".
لاحظ أن التعبيرات العادية تعرف مجموعة معينة من الأرقام لطول بطاقة ائتمان محدد، وأنه إذا كان هناك ترقيم بين الأرقام، فإنه يجب أن يكون نفس طوال.
الرقم الأخير في رقم بطاقة الائتمان هو رقم شيك تم إنشاؤه باستخدام خوارزمية لوهن. العمل من الطرف الأيمن من الرقم، ضعف كل رقم ثان. ثم اجمع الأرقام الفردية للأرقام الناتجة (الأرقام التي تم مضاعفتها والأرقام التي لم يتم جمعها). إذا كانت النتيجة مضاعفا من 10، يكون الرقم صحيحا.
على سبيل المثال، بافتراض الرقم 1234 5678 9012 3456:
1 2 3 4 6 8 0 1 2 4 5 6
مزدوج: 2 2 6 10 6 14 8 18 0 2 6 10 6
إضافة 2 + 2 + 6 + 4 + 1 + 0 ... + 1 + 0 + 6 يعطي 64، وهو ليس مضاعفا من 10، لذلك الرقم غير صالح.
بافتراض الرقم 1234 5678 9876 333:
1 2 3 4 6 8 8 7 3 3 3 3 3
مضاعفا: 2 2 6 10 6 14 8 18 8 14 6 3 3
إضافة 2 + 2 + 6 + 4 + 1 + 0 ... + 6 + 3 يعطي 80، وهو مضاعف 10، لذلك الرقم صحيح.
أرقام الضمان الاجتماعي الأمريكية
ويتم تقسيم أرقام الضمان الاجتماعي إلى رقم منطقة مكون من 3 خانات، يخصص جغرافيا، ورقم مجموعة مكون من 2 خانات يخصص بترتيب معين داخل منطقة ما، ورقم تسلسلي مكون من 4 خانات يعين تسلسليا.
وسيستخدم تنفيذنا التعبيرات المنتظمة التالية:
[0-9]{3}-[0-9]{2}-[0-9]{4}
[0-9]{3}\.[0-9]{2}\.[0-9]{4}
[0-9]{3} [0-9]{2} [0-9]{4}
فيما يلي بعض الأمثلة على العبارات الواردة أعلاه:
555-55-5555
555.55.5555
555 55 5555
وتحتفظ إدارة الضمان الاجتماعي بقائمة بأرقام المناطق/المجموعات التي تم تخصيصها: إصدار SSN [3]. ولكن نظرا لأن هذا المستند يتغير بشكل دوري، لا يمكننا الاعتماد عليه للتحقق من صحته. ستتحقق وظيفة التحقق من أنه لا يوجد أي من الحقول الثلاثة كلها أصفار، وأن الأرقام الثلاثة الأولى أقل من 800. (يستخدم المرجع السابق 771 كحد، ولكن SSA قام بالفعل بتعيين أرقام مع الأرقام الثلاثة الأولى 771 و 772.)
(الأرقام التي تبدأ ب 666 غير مخصصة، والأرقام الموجودة في النطاق 987-65-4320 إلى 987-65-4329 محجوزة للإعلان. علاوة على ذلك، يعتبر بروتوكول SSN رقم 078-05-1120 هو أكثر الشبكات الاجتماعية الآمنة سوء الاستخدام، فقد كان يمثل شبكة الأمان (SSN) الفعلية لسكرتير في شركة محفظة، التي أستخدمت الرقم كمثال على ذلك).
أرقام CUSIP
() أرقام اللجنة المعنية بإجراءات تحديد الهوية الأمنية الموحدة (CUSIP) هي 9 معرفات رقمية أبجدية لتحديد الأوراق المالية في أمريكا الشمالية من مختلف الأنواع. وينقسم الرقم إلى رقم مصدر مكون من 6 أحرف، يحدد بشكل فريد المصدر (مثل شركة)، وهو لاحقة ذات حرفين تحدد الضمان المعين؛ مثل المخزون المشترك، مقابل المخزون المفضل مقابل الخيار مقابل أداة الدخل الثابت.
سيستخدم رمز المعرف الذكي ل CUSIP التعبيرات العادية التالية:
[0-9]{3}[0-9a-zA-Z]{3} [0-9a-zA-Z]{2} [0-9]
[0-9]{3}[0-9a-zA-Z]{3}-[0-9a-zA-Z]{2}-[0-9]
[0-9]{3}[0-9a-zA-Z]{3}[0-9a-zA-Z]{2}[0-9]
وظيفة التحقق من الصحة مماثلة للوظيفة المستخدمة لأرقام بطاقات الائتمان. الفرق الوحيد هو أن الحروف في رقم CUSIP يتم تحويلها إلى قيمة رقمية بتعيين a=10، b=11، ...، z=35.
مثال من cusip.com موقع يستعمل ال CUSIP رقم 392690 QT 3:
3 9 2 6 9 Q T 3
تحويل الحروف: 3 9 2 6 9 0 26 29 3
مزدوج: 3 18 2 12 9 0 26 58 3
إضافة 3 + 1 + 8 + 2 + 1 + 2 + ... + 5 + 8 + 3 يعطي 50، وهو مضاعف 10، لذلك كان الرقم الأصلي صحيحا.
أرقام التوجيه ABA
رقم توجيه ABA (الجمعية المصرفية الأمريكية) عبارة عن قيمة من 9 خانات. أول 4 أرقام هي رمز توجيه الاحتياطي الفيدرالي، و 4 أرقام التالية معرف المؤسسة، و آخر رقم تحقق.
سيستخدم رمز المعرف الذكي لرقم توجيه ABA التعبيرات العادية التالية:
[0-9]{4} [0-9]{4} [0-9]
[0-9]{4}-[0-9]{4}-[0-9]
[0-9]{9}
تتضمن وظيفة التحقق من الصحة ضرب كل رقم في 3، 7، 1، ...؛ إذا كان مجموع المنتجات مضاعفا من 10، يكون الرقم صحيحا.
مثلا تأملوا في الرقم 123 456 789:
1 2 3 4 5 7 8 9
اضرب ب: 3 7 1 3 1 3 1 1 1
المنتج: 3 14 3 12 35 6 21 56 9
إضافة 3 + 14 + 3 + 12 + 35 + 6 + 21 + 56 + 9 يعطي 159، وهو ليس مضاعفا من 10، لذلك كان الرقم الأصلي غير صالح.
بافتراض الرقم 322 271 627:
3 2 2 7 1 2 7
اضرب ب: 3 7 1 3 1 3 1 1 1
المنتج: 9 14 2 6 49 18 14 7
إضافة 9 + 14 + 2 + 6 + 49 + 1 + 18 + 14 + 7 يعطي 120، وهو مضاعف 10، لذلك كان الرقم الأصلي صحيحا.
(على الرغم من أن نطاقات معينة من رموز توجيه الاحتياطي الفيدرالي محجوزة، وبالتالي لا يتم تعيينها، إلا أن خوارزمية التحقق لن تتحقق من الأرقام المحجوزة، لتجنب الاضطرار إلى مراجعتها إذا قام ABA بتغيير سياسته.)