کد ملی چیست و چطور صحت آن را بررسی کنیم؟
فهرست مطالب
کد ملی شناسهٔ ۱۰ رقمی یکتای هر شهروند ایرانی است که امروز در تقریبا همهٔ امور اداری، بانکی و آموزشی بهجای شمارهٔ شناسنامه استفاده میشود. این عدد تصادفی نیست: سه رقم اول حوزهٔ صدور را نشان میدهد و رقم آخر با یک فرمول ریاضی از بقیهٔ ارقام به دست میآید. همین فرمول به فرمها و نرمافزارها اجازه میدهد اشتباه تایپی را بدون اتصال به هیچ سامانهای تشخیص دهند.
ساختار ۱۰ رقم کد ملی
| بخش | ارقام | معنی |
|---|---|---|
| پیششمارهٔ حوزه | ۱ تا ۳ | حوزهٔ ثبت احوال صادرکنندهٔ شناسنامه |
| شمارهٔ یکتا | ۴ تا ۹ | شمارهٔ ترتیبی فرد در آن حوزه |
| رقم کنترل | ۱۰ | از ۹ رقم قبلی محاسبه میشود |
پیششماره نشاندهندهٔ محل صدور شناسنامه است، نه محل تولد یا سکونت. مثلا کدهایی که با ۰۰۱ تا ۰۰۸ شروع میشوند در تهران صادر شدهاند. فهرست کامل را در جدول پیششماره کد ملی شهرها ببینید.
فرمول رقم کنترل (با مثال)
برای کد ملی فرضی 0013542419:
- ۹ رقم اول را به ترتیب در وزنهای ۱۰، ۹، ۸، ۷، ۶، ۵، ۴، ۳ و ۲ ضرب کنید:
0×10 + 0×9 + 1×8 + 3×7 + 5×6 + 4×5 + 2×4 + 4×3 + 1×2 = 101 - باقیماندهٔ تقسیم بر ۱۱ را حساب کنید:
101 mod 11 = 2 - اگر باقیمانده کمتر از ۲ باشد، رقم کنترل همان باقیمانده است؛ وگرنه رقم کنترل برابر ۱۱ منهای باقیمانده است:
11 − 2 = 9
رقم دهم کد هم ۹ است؛ پس کد از نظر ساختاری معتبر است. این محاسبه را بررسی صحت کد ملی در لحظه و بدون ارسال کد به سرور انجام میدهد.
اشتباههای رایج
- حذف صفرهای ابتدا: اکسل و برخی فرمها صفرهای اول را حذف میکنند و کد
0013542419به13542419تبدیل میشود. کد ملی همیشه ۱۰ رقم است؛ کدهای ۸ و ۹ رقمی را از سمت چپ با صفر پر کنید و در اکسل ستون را از نوع «متن» تعریف کنید. - ارقام تکراری: کدهایی مثل
1111111111ممکن است فرمول را پاس کنند اما معتبر نیستند. - اعداد فارسی و عربی: کاربران ممکن است با صفحهکلید فارسی کد را وارد کنند؛ فرمها باید ارقام فارسی را به لاتین تبدیل کنند.
اعتبار ساختاری با «استعلام» فرق دارد
معتبر بودن رقم کنترل فقط میگوید این عدد میتواند کد ملی باشد. اینکه کد به چه کسی تعلق دارد یا آیا اصلا صادر شده، فقط از طریق سامانههای رسمی ثبت احوال یا استعلامهای بانکی (مثل شاهکار) قابل بررسی است. هیچ ابزار آفلاینی نمیتواند نام صاحب کد ملی را نمایش دهد و سایتهایی که چنین ادعایی دارند معمولا به اطلاعات شما نیاز دارند تا خودشان آن را جمع کنند.
شناسههای مشابه
| شناسه | طول | الگوریتم کنترل | ابزار |
|---|---|---|---|
| کد ملی اشخاص حقیقی | ۱۰ رقم | وزنهای ۱۰ تا ۲ و پیمانهٔ ۱۱ | بررسی کد ملی |
| شناسه ملی اشخاص حقوقی | ۱۱ رقم | ضرایب ۲۹، ۲۷، ۲۳، ۱۹، ۱۷ و پیمانهٔ ۱۱ | بررسی شناسه ملی |
| شماره کارت بانکی | ۱۶ رقم | الگوریتم لون | تشخیص بانک از کارت |
| شماره شبا | IR + ۲۴ رقم | استاندارد ISO 13616 (پیمانهٔ ۹۷) | اعتبارسنجی شبا |
برنامهنویسها برای تست فرمها هم میتوانند از کد ملی تستی استفاده کنند؛ این کدها فقط از نظر الگوریتمی معتبرند و نباید در سامانههای واقعی ثبت شوند.