اعتبارسنجی کد ملی

رقم آخر کد ملی رقم کنترل است و از نُه رقم دیگر ساخته می‌شود؛ اگر با آن نخواند، کد اشتباه است. مثلاً ۱۲۳۴۵۶۷۸۹۰ معتبر نیست، چون نُه رقم اولش رقم کنترل ۱ را می‌خواهند نه ۰.

کد ملی فقط در مرورگر خودتان بررسی می‌شود؛ به هیچ سروری فرستاده نمی‌شود و در هیچ لینکی نمی‌آید.

کد ۱۲۳۴۵۶۷۸۹۰

این کد ملی معتبر نیست

  • رقم آخر (رقم کنترل) ۰ است و نُه رقم اول، رقم کنترل ۱ را می‌خواهند.

بررسی گام‌به‌گام رقم کنترل

هر یک از نُه رقم اول در وزن جایگاهش ضرب می‌شود
رقم۱۲۳۴۵۶۷۸۹
وزن۱۰۹۸۷۶۵۴۳۲
حاصل‌ضرب۱۰۱۸۲۴۲۸۳۰۳۰۲۸۲۴۱۸
  1. جمع حاصل‌ضرب‌ها: ۱۰ + ۱۸ + ۲۴ + ۲۸ + ۳۰ + ۳۰ + ۲۸ + ۲۴ + ۱۸ = ۲۱۰
  2. باقی‌ماندهٔ تقسیم بر ۱۱: ۲۱۰ mod ۱۱ = ۱
  3. باقی‌مانده کمتر از ۲ است، پس رقم کنترل خودِ باقی‌مانده است: ۱.
  4. رقم دهم کد ۰ است؛ باید ۱ می‌بود، پس کد معتبر نیست (یا یک رقمش اشتباه نوشته شده).

الگوریتم رقم کنترل کد ملی

  1. نُه رقم اول را از چپ به ترتیب در ۱۰، ۹، ۸ … تا ۲ ضرب کنید و حاصل‌ها را جمع بزنید.
  2. باقی‌ماندهٔ این جمع بر ۱۱ را پیدا کنید.
  3. اگر باقی‌مانده کمتر از ۲ است، رقم کنترل خودِ باقی‌مانده است؛ وگرنه رقم کنترل ۱۱ منهای باقی‌مانده است.
  4. اگر رقم دهم کد با رقم کنترل یکی باشد، کد معتبر است.

مثال برای ۱۲۳۴۵۶۷۸۹۰: ۱×۱۰ + ۲×۹ + ۳×۸ + ۴×۷ + ۵×۶ + ۶×۵ + ۷×۴ + ۸×۳ + ۹×۲ = ۲۱۰، باقی‌ماندهٔ تقسیم بر ۱۱ می‌شود ۱ و چون کمتر از ۲ است، رقم کنترل باید ۱ باشد؛ رقم آخر کد ۰ است، پس کد معتبر نیست.

در اکسل، برای کدی که در A2 نوشته شده (به صورت متن، تا صفرهای اولش نیفتد): =MOD(SUMPRODUCT(--MID(A2,ROW($1:$9),1),11-ROW($1:$9)),11) باقی‌مانده را می‌دهد.

این بررسی چه چیزی را نشان نمی‌دهد؟

رقم کنترل فقط اشتباه تایپی را می‌گیرد؛ مثلاً اگر یک رقم اشتباه نوشته شود، رقم کنترل دیگر جور درنمی‌آید. معتبر بودن ساختار یعنی کد ممکن است درست باشد، نه این‌که صادر شده یا مال شخص خاصی است. برای استعلام واقعی باید از سامانه‌های رسمی ثبت احوال استفاده کرد.

اگر فرمی کد ملی شما را نمی‌پذیرد، شاید رقم‌ها فارسی‌اند و فرم فقط رقم انگلیسی می‌شناسد. تبدیل اعداد فارسی به انگلیسی را امتحان کنید.

پرسش‌های پرتکرار

کد ملی من ۸ یا ۹ رقم است؛ اشتباه است؟

کد ملی همیشه ده رقم است. کدهایی که با صفر شروع می‌شوند در اکسل یا بعضی فرم‌ها صفرهای اولشان را از دست می‌دهند؛ این ابزار صفرها را خودش اضافه می‌کند و بعد بررسی می‌کند.

کد ملی من کجا ذخیره می‌شود؟

هیچ‌جا. بررسی با جاوااسکریپت همین صفحه در مرورگر شما انجام می‌شود، کد در آدرس صفحه نمی‌آید و چیزی به سرور فرستاده نمی‌شود.

از کد ملی می‌شود شهر محل صدور را فهمید؟

فهرست‌هایی از رقم‌های اول کد و شهرها در اینترنت دست‌به‌دست می‌شود، اما جدول رسمی و قابل‌بررسی‌ای از آن پیدا نکردیم؛ برای همین این ابزار شهری نشان نمی‌دهد.