رقم تحقق دام
أضف رقمًا واحدًا إلى أي رقم والتقط الأخطاء المطبعية التي تحدث فعلًا: يحصل 572 على رقم تحقق دام 4 فيصبح 5724، وأي رقم خاطئ أو تبديل بين رقمين متجاورين يُفشل التحقق. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- سلسلة أرقام فقط
- 572
- وضع الحساب
- Compute
- الإدخال
- 572
- رقم التحقق
- 4
- مع رقم التحقق
- 5724
كتابة رموز الحسابات الطويلة أو الأرقام التسلسلية أو معرّفات العضوية باليد هي حيث تختبئ معظم أخطاء الأرقام. تُلحق خوارزمية رقم تحقق دام رقمًا لاحقًا واحدًا بحيث يكسر المجموعَ التحققي كلُّ استبدال لخانة واحدة وكلُّ إبدال بين خانتين متجاورتين—وهو ضمان أقوى من مخططات المقياس 10 البسيطة لأنواع الأخطاء المطبعية التي يرتكبها الناس بالضبط.
ماذا تلتقط خوارزمية دام مما تفوته الفحوص الأضعف
توجد أرقام التحقق لأن البشر ولوحات المفاتيح يُدخلون أضرارًا يمكن التنبؤ بها: مفتاح واحد خاطئ، أو خانتان متجاورتان مُبدَّلتان، أو خانة مُدرَجة أو محذوفة. وكثير من المخططات اليومية، ومنها قاعدة Luhn الكلاسيكية المستعملة في بطاقات الدفع، تلتقط معظم أخطاء الخانة الواحدة وكثيرًا من الإبدالات المتجاورة، لكنها تترك بضعة أزواج إبدال غير مرئية—أبرزها 09 مقابل 90 تحت Luhn. صمّم H. Michael Damm بناءً مختلفًا: تُدمَج الخانات من اليسار إلى اليمين عبر جدول شبه زمرة ضدّ-تناظري كليًّا ثابت 10×10، بدءًا من صفر مؤقت.
تضمن الخصائص الجبرية أن تغيير أي خانة واحدة، أو إبدال أي خانتين متجاورتين، لا يمكن أن يترك المؤقت النهائي عند صفر. وذلك هو المكسب العملي لأرقام الحسابات، ووحدات تخزين المستودعات، ومعرّفات المرضى أو التذاكر، وأي رمز ثابت الطول قد يوجِّه فيه خطأ مطبعي واحد العملَ إلى السجل الخاطئ. تنفّذ هذه الأداة ذلك الجدول المعياري والمسير المعياري من اليسار إلى اليمين؛ ولا تخترع صيغة داخلية.
ويسمّي الناتج الخوارزمية دائمًا damm كي تستطيع الأنظمة اللاحقة تسجيل أي مخطط حمى القيمة.
أين تناسب أرقام تحقق دام الأنظمة الحقيقية
تُصدر برامج العضوية والولاء معرّفات رقمية تسلسلية أو عشوائية وتحتاج رقمًا لاحقًا لن يفسده وكلاء مراكز الاتصال ولوحات مفاتيح الهواتف بصمت. وتطبع فِرق المستودعات واللوجستيات رموز الكراتين أو الأصول؛ وإبدال خانتين على مسار ماسح محمول شائع، ودام يلتقط كل إبدال متجاور تفوته المخططات الأضعف. وتستطيع مكاتب الرعاية الصحية والتعليم التي ما زالت تنقل نماذج ورقية بأرقام مرجعية متعددة الخانات التحقق عند الإدخال وإظهار تصحيح فوري بدل إنشاء ملف أو تسجيل مكرَّر.
وتعيد اختبارات التكامل ومهام جودة البيانات حساب رقم التحقق المتوقع لكل صف في تصدير CSV وتُعلِّم الصفوف التي لم يعد الرقم الكامل المخزّن يطابقها، مما يلتقط تعديلات البشر وأخطاء الانحراف بمقدار واحد في المولّدات. وتستطيع فِرق المنتجات التي تستعمل Luhn أصلًا للحقول الشبيهة بالبطاقات أن تتبنّى دام للمعرّفات الداخلية حيث تهمّ خاصية الإبدال الأقوى أكثر من أعراف شبكات البطاقات. ولا تعامل نجاح فحص دام دليلًا على التفويض أو الملكية—فهو يثبت فقط أن سلسلة الأرقام سليمة التكوين تحت هذه الخوارزمية، وهي المعيار الصادق نفسه الذي تطبّقه على أي مجموع تحققي.
حالات الاستخدام
تدقيق أعمدة المعرّفات المصدَّرة
تحقّق دفعةً من كل معرّف رقمي في ملف CSV لشريك أو تصدير مستودع، واعزل الصفوف التي لم يعد رقم تحققها يطابق القيمة المتوقعة المعاد حسابها.
الأسئلة الشائعة
ما رقم تحقق دام؟
هو رقم لاحق واحد محسوب بخوارزمية شبه الزمرة لـ H. Michael Damm بحيث يجعل أيُّ خانة خاطئة أو أيُّ إبدال متجاور الرقمَ الكامل يفشل في التحقق.
ماذا يحدث مع الحروف أو المسافات أو الشرطات؟
قدّم الأرقام 0-9 فقط؛ ومهام التحقق الفاشلة لا تُحتسب.
ما الفرق بين دام ورقم تحقق لون؟
يلتقط لون معظم أخطاء الرقم الواحد، لكنه يفوّت بعض حالات تبديل رقمين متجاورين، مثل كتابة 09 على أنها 90. أما دام فيلتقط كل رقم خاطئ وكل تبديل بين رقمين متجاورين.
كيف أتحقق من رقم يحمل رقم تحقق دام بالفعل؟
اختر خيار التحقق وأدخل الرقم كاملًا. عند تمرير الرقم كله، ومعه رقم التحقق، عبر جدول دام يجب أن تنتهي النتيجة إلى صفر، وإلا فهناك رقم مكتوب خطأ.
هل يعني رقم تحقق دام الصحيح أن الرقم حقيقي؟
لا. يثبت التحقق فقط أن سلسلة الأرقام مكتوبة وفق قاعدة دام. ولا يخبرك هل صدر الرقم فعلًا، أو لمن يعود، أو هل هو مأذون به.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/enc/damm \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"number":"572"}'const res = await fetch("https://api.kit.forhosting.com/enc/damm", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"number": "572"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/damm",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"number": "572"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/damm", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"number":"572"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"number":"572"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/damm", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"number": "572"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.damm",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
تحسب هذه القدرة ذلك الرقم لحمولة تملكها أصلًا، أو تتحقق من رقم كامل يتضمّنه بالفعل، وترفض المدخلات غير الرقمية بخطأ واضح بدل تجاهل الفوضى بصمت. شغّلها مجانًا في المتصفح أو استدعِ الـ API الخاص بـ KIT بالسعر المنشور؛ ويستعمل المساران الحساب النقي نفسه، دون شبكة ودون تخزين أي أرقام.
ماذا تلتقط خوارزمية دام مما تفوته الفحوص الأضعف
وبسبب بنية ذلك الجدول، بعد معالجة الحمولة يكون الرقم المؤقت هو بالضبط رقم التحقق الذي ينبغي إلحاقه، ومعالجة الرقم الكامل بما فيه ذلك الرقم تنتهي دائمًا عند صفر حين يكون الرقم سليم التكوين. ومقارنةً بأرقام تحقق عائلة الباركود (EAN وUPC وISBN)، لا يرتبط دام بمخطط GTIN للبيع بالتجزئة—فهو ينطبق على أي سلسلة أرقام محضة تختارها حمولةً، ولهذا ينتمي إلى أداة ترميز لا إلى مدقّق باركود منتجات.
كيف تحسب رقم تحقق أو تتحقق من رقم كامل
أرسِل حقل number يحتوي فقط على المحارف من 0 إلى 9. ويجعل ذلك الشكل من السهل إظهار «كتبتَ X، والمتوقع Y» في نموذج دون استدعاء ثانٍ. أما السلاسل الفارغة، وحقل number المفقود، وقيم mode غير الصالحة فتفشل قبل تشغيل أي بحث في الجدول ولا تُحتسب. فضّل compute حين تُصدر معرّفات جديدة؛ وفضّل validate حين تتلقى معرّفًا من مستخدم أو ملف شريك أو ملصق ممسوح وتحتاج بوابة منطقية قبل البحث عن السجل. أما المسافات والشرطات والحروف والفواصل العشرية والترميز العلمي فتُرفَض بوصفها مدخلًا غير رقمي بخطأ invalid_input كي لا تقبل أبدًا قيمة جُرِّدت بصمت. ونمط compute هو الافتراضي: يسير المحرّك بالحمولة عبر جدول دام، ويُعيد check_digit سلسلةً بمحرف واحد، ويُعيد with_check بوصفه الحمولة زائد ذلك الرقم كي تخزّن أو تطبع سلسلة واحدة. أما نمط validate فيتوقّع رقمًا كاملًا من خانتين على الأقل (خانة حمولة واحدة أو أكثر زائد رقم التحقق اللاحق). تُبلّغ الاستجابة valid صحيحًا حين ينتهي المسير الكامل عند مؤقت صفر، وتتضمّن دائمًا check_digit اللاحق، وexpected_check_digit المعاد حسابه من الحمولة وحدها، وسلسلة الحمولة الفرعية دون الخانة الأخيرة. ولأن المسار تحليل نقي دون ساعة أو مصدر عشوائي أو شبكة، يُنتج المدخل نفسه دائمًا الـ JSON نفسه على الأداة المجانية في المتصفح وعلى الـ API. وبسعر $0.002 لكل طلب ناجح تستطيع حماية عمليات الاستيراد المجمّعة، ونماذج التسجيل، وطابعات الملصقات الدفعية دون التفاوض على شريحة مخصّصة.
أين تناسب أرقام تحقق دام الأنظمة الحقيقية
وفي كل سير عمل يبقى العقد نفسه: أرقام فقط، احسب أو تحقّق، JSON منظّم قابل للاختبار الذهبي، سلوك متطابق مجانًا في المتصفح أو عبر رصيد KIT المدفوع مسبقًا، وفشل صادق حين لا يكون المدخل رقميًّا.
حالات التكامل
إصدار معرّفات عضوية أو حسابات
ولّد حمولة تسلسلية، واستدعِ نمط compute، وخزّن with_check كي يحمل كل معرّف جديد رقم دام اللاحق قبل طباعته على البطاقات أو إرساله بالبريد للأعضاء.
التحقق من الرموز المكتوبة أو الممسوحة عند الإدخال
حين يُرسل مستخدم أو ماسح رقمًا كاملًا، استدعِ نمط validate وامنع البحث حين تكون valid خاطئة، مُظهرًا expected_check_digit للمساعدة في تصحيح خطأ مطبعي واحد.
أسئلة تقنية
كيف أحسب رقم تحقق دام بهذا الـ API؟
أرسِل POST مع number مضبوطًا على خانات الحمولة وmode على compute (أو احذف mode). تتضمّن الاستجابة check_digit وwith_check (الحمولة زائد رقم التحقق).
كيف أتحقق من رقم يتضمّن رقم تحقق بالفعل؟
أرسِل POST مع سلسلة الأرقام الكاملة وmode على validate. تتضمّن الاستجابة valid وcheck_digit وexpected_check_digit والحمولة دون الخانة الأخيرة.
هل أداة رقم تحقق دام مجانية؟
الأداة في المتصفح مجانية وتعمل محليًا. أما استدعاءات الـ API فتستعمل رصيد KIT المدفوع مسبقًا بسعر الأساس المنشور $0.002؛ والمدخل غير الصالح لا يُحتسب أبدًا.