كل المقالات

خوارزمية لون: كيف يُتحقَّق من صحة رقم البطاقة

الرقم الأخير في بطاقة الدفع ليس عشوائيًا، بل هو رقم تحقق (checksum) صُمم خصيصًا لاكتشاف نوع الأخطاء التي يقع فيها أي شخص عند نسخ رقم طويل يدويًا في نموذج دفع إلكتروني.

كيف تعمل خوارزمية Luhn

تمر الخوارزمية على أرقام البطاقة من اليمين إلى اليسار، وتضاعف كل رقم ثانٍ، فإذا تجاوز الناتج 9 تطرح منه 9. إذا كان الرقم صحيحًا، فإن مجموع كل الأرقام الناتجة يقبل القسمة على 10 دون باقٍ.

اختراع من شركة IBM في الخمسينيات، وليس من Visa أو Mastercard

تحمل الخوارزمية اسم عالم IBM هانس بيتر لون (Hans Peter Luhn)، الذي سجّلها كبراءة اختراع عام 1954 كطريقة عامة لاكتشاف أخطاء النسخ في أي تسلسل أرقام، دون أي علاقة مباشرة ببطاقات الدفع في الأصل. اعتمدتها شبكات الدفع لاحقًا لأنها رخيصة الحساب وتكتشف أكثر خطأين شيوعًا عند الإدخال اليدوي: رقم واحد مكتوب خطأ، أو رقمين متجاورين تم تبديل مكانيهما.

لماذا لا يعني اجتياز فحص Luhn أن البطاقة موجودة فعلاً

يتحقق فحص Luhn فقط من البنية الرياضية للرقم، وليس من وجود حساب حقيقي خلفه. يمكن توليد ملايين الأرقام التي تجتاز هذا الفحص دون أن يكون أي منها مرتبطًا ببطاقة حقيقية — لذلك تبقى كل عملية دفع فعلية بحاجة إلى المرور عبر البنك المُصدر للتحقق الفعلي.

لماذا نحتاج إلى هذا الفحص

  • اكتشاف رقم بطاقة مكتوب خطأً قبل إرسال النموذج إلى الخادم.
  • استبعاد الأخطاء المطبعية الواضحة بسرعة عند إدخال رقم طويل يدويًا.
  • فهم حدود ما يثبته فحص Luhn وما لا يثبته.

التعرف على شبكة الدفع من رقم البطاقة (BIN)

الأرقام الأولى من رقم البطاقة تُعرف بـ BIN (Bank Identification Number)، وتحدد شبكة الدفع حتى قبل إجراء فحص Luhn الكامل. تبدأ أرقام Visa بالرقم 4، وMastercard بالنطاق 51–55 أو النطاق الأحدث 2221–2720، وAmerican Express بـ34 أو 37. وفي عدد من دول الخليج، مثل السعودية والإمارات وقطر، تُستخدم أيضًا شبكات دفع محلية للخصم المباشر إلى جانب هذه الشبكات العالمية، وهو ما يفسر ظهور بادئات BIN مختلفة على البطاقات الصادرة محليًا.

جرّب الأداة