كيفية توليد كود تحقق يضمن دقة إدخال المستخدم

في مشهد اليوم الرقمي، تزداد الحاجة إلى طرق تحقق آمنة أكثر من أي وقت مضى. سواء كنت تعمل على تطبيق أو خدمة تتطلب مصادقة المستخدم، فمن الضروري إنشاء طريقة موثوقة للمستخدمين للتحقق من هوياتهم. أحد الأساليب الشائعة هو توليد رقم تحقق يجب على المستخدمين إدخاله باستخدام لوحة مفاتيح الهواتف الخاصة بهم.

المشكلة

يجب ألا يكون توليد رقم التحقق عشوائيًا فحسب، بل يجب أيضًا أن يلبي متطلبات معينة:

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

مع وضع هذه المعايير في الاعتبار، كيف يمكننا توليد كود تحقق عددي بشكل فعال؟

الحل

بعد فحص عدة خوارزميات محتملة، ظهرت صيغة ISO 7064 Mod 97,10 كمرشح قوي. هذه الخوارزمية مشهورة بموثوقيتها، حيث تم استخدامها للتحقق من أرقام حسابات البنك الدولية (IBAN). إليك تحليل مفصّل لكيفية عمل هذه الخوارزمية لتوليد والتحقق من كود التحقق.

تحليل خطوة بخطوة للخوارزمية

  1. اختر رقم قاعدة:

    • مثال على رقم القاعدة: 123456
  2. احسب قيمة التحقق:

    • استخدم الصيغة التالية لتوليد قيمة تحقق مكونة من رقمين:
      checksum = mod(98 - mod(number * 100, 97), 97)
      
    • لمثالنا:
      checksum = mod(98 - mod(123456 * 100, 97), 97) => checksum = 76
      
  3. دمج رقم القاعدة وقيمة التحقق:

    • قم بجمع الرقم الأصلي مع قيمة التحقق المتولدة لتشكيل كود التحقق النهائي:
      verification code = base number + checksum
      
    • مما ينتج عنه: 12345676
  4. التحقق من الكود:

    • للتحقق مما إذا كان الكود المدخل من قبل المستخدم صحيحًا، استخدم هذه الصيغة:
      valid if mod(code, 97) == 1
      

اختبار الخوارزمية

لتوضيح فعالية هذه الطريقة، دعونا نقوم بإجراء بعض الاختبارات مع كود التحقق المتولد:

  • مثال كود صحيح:

    test: mod(12345676, 97) = 1 => جيد
    
  • أمثلة كود غير صحيحة:

    test: mod(21345676, 97) = 50 => غير جيد!
    test: mod(12345678, 97) = 10 => غير جيد!
    

كما هو موضح في الأمثلة، الخوارزمية قادرة على الكشف بشكل فعال عن الأرقام الصحيحة وغير الصحيحة بدقة عالية.

خيارات بديلة

بينما توفر ISO 7064 Mod 97,10 اكتشافًا قويًا للأخطاء، تعتبر خوارزمية Verhoeff خيارًا مثيرًا آخر. هذه الخوارزمية لها ميزة استخدام رقم تحقق واحد لكنها مشهورة بتعقيدها في التنفيذ مقارنة بالصيغة البسيطة لـ ISO.

الخاتمة

يمكن أن يعزز دمج خوارزمية كود تحقق قوي بشكل كبير من أمان وتجربة المستخدم لأي تطبيق يتطلب التحقق من إدخال المستخدم. تبرز خوارزمية ISO 7064 Mod 97,10 لسهولتها وفعاليتها، مما يجعلها الخيار الأول للمطورين الذين يتطلعون إلى إنشاء كود عددي للتحقق من هوية المستخدم.

من خلال تنفيذ هذه الطريقة في تطبيقك، تساعد في ضمان أن عملية التحقق هي كل من آمنة وسهلة الاستخدام، مما يقلل من الأخطاء المحتملة في الإدخال مع الحفاظ على سلامة البيانات.