فهرست مطالب
بررسی صحت کد ملی پیش از ثبت آن در فرمهای بانکی، اداری، بیمه و فروشگاههای اینترنتی، جلوی بسیاری از خطاها و رفتوبرگشتها را میگیرد. کد ملی ده رقم دارد و رقم آخر آن رقم کنترل است که از نُه رقم قبلی با الگوریتمی ساده محاسبه میشود. اگر یک رقم اشتباه تایپ شود، رقم کنترل معمولا دیگر با بقیه جور درنمیآید و کد نامعتبر میشود. در ابزار بالا کد ملی را، با یا بدون صفرهای ابتدایی، وارد کنید تا معتبر یا نامعتبر بودن آن و در صورت امکان، شهر و استان حوزهٔ صادرکننده همان لحظه نمایش داده شود. اگر کد نامعتبر باشد، علت آن را هم میبینید. کد شما از مرورگرتان خارج نمیشود و ابزار به هیچ پایگاه دادهٔ شخصی متصل نیست.
راهنمای استفاده از بررسی صحت کد ملی
- کد ملی را (با یا بدون صفرهای ابتدا) وارد کنید.
- نتیجهٔ اعتبارسنجی و شهر و استان صادرکننده بلافاصله نمایش داده میشود.
- در صورت نامعتبر بودن، علت (رقم کنترل اشتباه یا ساختار نادرست) را ببینید.
کد ملی چیست؟
کد ملی شناسهای دهرقمی و یکتاست که سازمان ثبت احوال کشور به هر ایرانی اختصاص میدهد و در شناسنامه و کارت ملی درج میشود. این کد از اواخر دههٔ هفتاد خورشیدی جایگزین بسیاری از شمارههای قدیمیتر در ارتباط با نهادهای دولتی و خصوصی شد و امروز تقریبا در هر خدمتی، از افتتاح حساب بانکی و ثبتنام مدرسه تا خرید بلیت و دریافت خدمات درمانی، پرسیده میشود. کد ملی برخلاف شمارهٔ شناسنامههای قدیمی که در هر حوزه از یک شروع میشد، در کل کشور یکتاست.
برای اشخاص حقوقی، یعنی شرکتها و مؤسسهها، شناسهٔ ملی یازدهرقمی جداگانهای وجود دارد که الگوریتم متفاوتی دارد و با بررسی شناسه ملی اشخاص حقوقی سنجیده میشود. اتباع خارجی ساکن ایران هم کد فراگیر جداگانهای دارند که ساختار آن با کد ملی ایرانیان فرق دارد و با این ابزار بررسی نمیشود.
ساختار کد ملی؛ سه بخش در ده رقم
کد ملی از سه بخش تشکیل شده است. سه رقم اول، پیششمارهٔ حوزهٔ ثبت احوالی است که کد را صادر کرده؛ مثلا پیششمارههای ۰۰۱ تا ۰۰۸ برای تهران مرکزی، ۰۹۲ تا ۰۹۴ برای مشهد و ۱۲۷ تا ۱۲۹ برای اصفهان. شش رقم بعدی، یعنی رقمهای چهارم تا نهم، شمارهٔ سریال در همان حوزه است. رقم دهم، رقم کنترل است که از نُه رقم قبلی محاسبه میشود و نقش آن، تشخیص خطای تایپی است.

یک نکتهٔ مهم دربارهٔ پیششماره این است که نشاندهندهٔ محل صدور کد است، نه لزوما محل تولد یا سکونت فعلی فرد. کسی که در شهری متولد شده ولی شناسنامهاش را در شهر دیگری گرفته، پیششمارهٔ شهر دوم را دارد. به همین دلیل، استفاده از پیششماره برای حدس زدن زادگاه افراد، همیشه درست نیست. جدول کامل پیششمارهها را در پیششماره کد ملی شهرها میبینید.
الگوریتم رقم کنترل کد ملی
رقم کنترل با روشی ساده محاسبه میشود. نُه رقم اول را به ترتیب در اعداد ده، نُه، هشت تا دو ضرب کنید؛ یعنی رقم اول در ده، رقم دوم در نُه و همینطور تا رقم نهم در دو. حاصلها را جمع بزنید و باقیماندهٔ تقسیم این جمع بر یازده را پیدا کنید. اگر باقیمانده صفر یا یک باشد، رقم کنترل همان باقیمانده است. اگر دو یا بیشتر باشد، رقم کنترل یازده منهای باقیمانده است.

برای نمونه، فرض کنید نُه رقم اول یک کد «۰۰۱۲۳۴۵۶۷» باشد. جدول زیر محاسبه را نشان میدهد.
| رقم | ۰ | ۰ | ۱ | ۲ | ۳ | ۴ | ۵ | ۶ | ۷ |
|---|---|---|---|---|---|---|---|---|---|
| ضریب | ۱۰ | ۹ | ۸ | ۷ | ۶ | ۵ | ۴ | ۳ | ۲ |
| حاصل | ۰ | ۰ | ۸ | ۱۴ | ۱۸ | ۲۰ | ۲۰ | ۱۸ | ۱۴ |
جمع حاصلها ۱۱۲ است و باقیماندهٔ تقسیم ۱۱۲ بر ۱۱، دو است. چون دو کمتر از دو نیست، رقم کنترل یازده منهای دو یعنی نُه میشود. پس کد دهرقمی کامل با این نُه رقم، به نُه ختم میشود. این مثال فقط برای نمایش روش محاسبه است.
چرا یک رقم اشتباه کد را نامعتبر میکند؟
ضریبهای متفاوت برای هر جایگاه باعث میشوند که تغییر هر رقم، جمع را تغییر دهد و در نتیجه باقیمانده و رقم کنترل هم تغییر کند. اگر کسی هنگام تایپ یک رقم را اشتباه بزند، احتمال بسیار زیادی دارد که رقم کنترل دیگر با بقیه جور نباشد. حتی جابهجا کردن دو رقم کنار هم، که خطای تایپی رایجی است، معمولا شناسایی میشود، چون دو رقم در ضریبهای متفاوتی ضرب میشوند. البته هیچ الگوریتم رقم کنترلی همهٔ خطاها را نمیگیرد؛ گاهی دو خطای همزمان ممکن است همدیگر را خنثی کنند.
این ویژگی برای فرمها و سامانهها ارزش زیادی دارد. پیش از ارسال اطلاعات به سرور یا پایگاه داده، میتوان با همین محاسبهٔ ساده، بیشتر خطاهای تایپی را در لحظه به کاربر نشان داد. این کار تجربهٔ کاربر را بهتر میکند و جلوی ثبت اطلاعات نادرست را میگیرد.
بررسی صحت کد ملی؛ شرطهای دیگر اعتبار
علاوه بر رقم کنترل، چند شرط دیگر هم در بررسی کد ملی رعایت میشود. کد باید دقیقا ده رقم باشد. کدهایی که همهٔ رقمهایشان یکسان است، مثل ده تا یک یا ده تا صفر، با اینکه از نظر ریاضی رقم کنترل درستی دارند، نامعتبر شمرده میشوند؛ چون در عمل صادر نشدهاند و اغلب برای دور زدن فرمها وارد میشوند. کدهایی هم که رقمهای چهارم تا نهمشان همه صفر است، نامعتبرند.
ابزار در صورت نامعتبر بودن کد، علت را مشخص میکند: کمتر یا بیشتر از ده رقم، رقمهای تکراری، صفر بودن بخش سریال یا ناهماهنگی رقم کنترل. دانستن علت به کاربر کمک میکند خطای خود را سریعتر پیدا کند؛ مثلا اگر علت طول کد است، احتمالا رقمی جا افتاده است.
صفرهای ابتدایی؛ رایجترین دردسر فرمها
بسیاری از کدهای ملی، بهویژه کدهای صادرشده در تهران، با یک یا دو صفر شروع میشوند. برخی فرمها و نرمافزارها کد ملی را بهعنوان عدد ذخیره میکنند و صفرهای ابتدایی را حذف میکنند؛ نتیجه، کدی هشت یا نُه رقمی است که سامانههای دیگر آن را نامعتبر میدانند. این ابزار طبق قاعدهٔ رسمی، اگر کد هشت یا نُه رقمی وارد شود، صفرهای لازم را به ابتدای آن اضافه میکند و سپس بررسی میکند.
برای برنامهنویسان، درس مهم این است که کد ملی را همیشه بهصورت رشتهٔ متنی ذخیره کنید، نه عدد. در صفحهگستردهها هم ستون کد ملی را از نوع متن تعریف کنید تا صفرهای ابتدایی حذف نشوند. همین نکتهٔ کوچک، جلوی بسیاری از خطاهای سامانهای را میگیرد.
ارقام فارسی و انگلیسی
یکی دیگر از دلایل رایج خطا در فرمها، تفاوت ارقام فارسی و انگلیسی است. کاربری که با صفحهکلید فارسی کد ملی را تایپ میکند، ارقام فارسی وارد میکند و برخی سامانهها فقط ارقام انگلیسی را میپذیرند. این ابزار هر دو نوع ارقام و حتی ارقام عربی را میپذیرد و خودش آنها را یکسان میکند. اگر فرمی ارقام فارسی را نمیپذیرد، کد را با تبدیل اعداد فارسی و انگلیسی تبدیل کنید.
حریم خصوصی؛ این ابزار چه کاری نمیکند
این ابزار فقط ساختار کد را بررسی میکند. به هیچ پایگاه دادهٔ ثبت احوال یا سامانهٔ دولتی متصل نیست و نمیتواند نام، تاریخ تولد، نشانی یا هر اطلاعات شخصی دیگری را از کد ملی استخراج کند. کد ملی که وارد میکنید، هرگز از مرورگر شما خارج نمیشود. این طراحی عمدی است؛ کد ملی اطلاعات حساسی است و نباید بیدلیل در سایتهای مختلف وارد شود.
معتبر بودن ساختاری یک کد، به معنای تعلق آن به شخص واقعی یا صحت هویت نیست. کسی میتواند کدی با ساختار درست بسازد که به هیچکس تعلق ندارد یا به شخص دیگری تعلق دارد. برای احراز هویت واقعی، سازمانها باید از سامانههای رسمی استعلام استفاده کنند. اگر کسبوکارید، تنها به اعتبارسنجی ساختاری برای تأیید هویت مشتری تکیه نکنید.
کاربرد برای برنامهنویسان و طراحان فرم
اعتبارسنجی کد ملی در سمت کاربر، یکی از سادهترین بهبودهایی است که میتوان در فرمهای ایرانی انجام داد. بهتر است بررسی همزمان با تایپ یا هنگام خروج از کادر انجام شود و پیام خطا روشن و مشخص باشد؛ مثلا «کد ملی باید ۱۰ رقم باشد» بهجای «ورودی نامعتبر». ورودی را پیش از بررسی پاکسازی کنید: فاصلهها و خط تیرهها را حذف و ارقام فارسی را به انگلیسی تبدیل کنید. حتما اعتبارسنجی را در سمت سرور هم تکرار کنید، چون بررسی سمت کاربر قابل دور زدن است.
برای تست فرمها و نرمافزارها، به کدهای ملی ساختگی با ساختار درست نیاز دارید که به کسی تعلق نداشته باشند. تولید کد ملی تستی دقیقا برای همین طراحی شده است. هرگز از کدهای ملی واقعی افراد برای تست استفاده نکنید.
چرا فرم کد ملی معتبرم را نمیپذیرد؟
اگر ابزار کد شما را معتبر میداند ولی فرمی آن را رد میکند، چند احتمال وجود دارد. ممکن است فرم ارقام فارسی را نپذیرد، صفرهای ابتدایی را حذف کرده باشد، یا فاصله و خط تیره را خطا بداند. گاهی هم فرم علاوه بر ساختار، کد را با اطلاعات دیگری مثل تاریخ تولد در سامانهٔ رسمی تطبیق میدهد و ناهماهنگی در آن اطلاعات، به رد کد منجر میشود. در این حالت، اطلاعات دیگر فرم را هم با کارت ملی مقایسه کنید.
اگر ابزار کد شما را نامعتبر میداند، کد را دوباره از روی کارت ملی بخوانید. رقمهای شبیه به هم مثل شش و نُه یا ارقام کمرنگ روی کارتهای قدیمی، منشأ رایج اشتباهاند. اگر کد را دقیق وارد کردهاید و همچنان نامعتبر است، که بسیار نادر است، با ثبت احوال تماس بگیرید.
از شمارهٔ شناسنامه تا کد ملی
پیش از کد ملی، شمارهٔ شناسنامه مهمترین شمارهٔ هویتی ایرانیان بود. اما شمارهٔ شناسنامه در هر حوزهٔ ثبت احوال از یک شروع میشد و در نتیجه، هزاران نفر در کشور شمارهٔ شناسنامهٔ یکسان داشتند. برای شناسایی دقیق هر فرد، باید شمارهٔ شناسنامه را همراه با محل صدور، نام و تاریخ تولد به کار میبردند که برای سامانههای رایانهای مناسب نبود. کد ملی برای حل همین مشکل طراحی شد: شناسهای یکتا در کل کشور که بتوان آن را بهسادگی در پایگاههای داده به کار برد.
در شناسنامههای جدید، شمارهٔ شناسنامه همان کد ملی است و شمارهٔ جداگانهای وجود ندارد. اما در شناسنامههای قدیمیتر، هر دو شماره دیده میشود. اگر فرمی هم شمارهٔ شناسنامه و هم کد ملی میخواهد و شناسنامهٔ شما جدید است، در هر دو کادر همان کد ملی را وارد کنید.
کد ملی در زندگی روزمره
امروز کد ملی تقریبا در هر تعامل رسمی پرسیده میشود. افتتاح حساب بانکی، دریافت سیمکارت، ثبتنام در مدرسه و دانشگاه، بیمه، خدمات درمانی، خرید بلیت قطار و هواپیما، ثبت خودرو و ملک، و حتی بسیاری از خریدهای اینترنتی، به کد ملی نیاز دارند. یکپارچه شدن خدمات دولتی با کد ملی، کارها را سادهتر کرده، اما در عین حال، اهمیت حفاظت از آن را هم بیشتر کرده است.
کد ملی را فقط در جاهایی وارد کنید که واقعا به آن نیاز دارند و به آن اعتماد دارید. سایتهایی که بیدلیل کد ملی میخواهند، یا پیامهایی که با عنوانهایی مثل یارانه و سهام عدالت از شما کد ملی و اطلاعات بانکی میخواهند، میتوانند تلهٔ کلاهبرداری باشند. کد ملی همراه با اطلاعات دیگری مثل شماره تلفن و تاریخ تولد، برای جعل هویت کافی است.
اگر کارت ملی گم شد
گم شدن کارت ملی، کد ملی را تغییر نمیدهد. برای دریافت کارت المثنی، از طریق دفاتر پیشخوان دولت یا سامانههای ثبت احوال اقدام کنید. در فاصلهٔ دریافت کارت جدید، کد ملی را از شناسنامه میتوانید ببینید. اگر نگران سوءاستفاده از کارت گمشده هستید، بهویژه برای امور بانکی، موضوع را به بانکهایی که با آنها حساب دارید اطلاع دهید.
کارت ملی هوشمند
کارت ملی هوشمند، که در سالهای اخیر جایگزین کارتهای قدیمی کاغذی شده، علاوه بر کد ملی، تراشهای دارد که اطلاعات هویتی و گواهی امضای دیجیتال را نگه میدارد. کد ملی روی کارت هوشمند همان کد قبلی است و با تعویض کارت تغییر نمیکند. این تراشه برای احراز هویت حضوری و غیرحضوری در برخی خدمات کاربرد دارد. کد ملی، چه روی کارت قدیمی و چه هوشمند، با همین الگوریتم بررسی میشود.
کد ملی کودکان و نوزادان
کد ملی از همان زمان صدور شناسنامه به نوزاد اختصاص داده میشود و تا پایان عمر تغییر نمیکند. والدین برای ثبتنام کودک در بیمه، دریافت خدمات درمانی، ثبتنام پیشدبستانی و مدرسه و حتی گرفتن برخی کالابرگها و خدمات حمایتی به کد ملی فرزند نیاز دارند. کودکان معمولا تا سن مشخصی کارت ملی ندارند و کد ملی آنها از شناسنامه خوانده میشود. اگر کد ملی فرزندتان را در فرمی وارد میکنید و خطا میگیرید، با همین ابزار آن را بررسی کنید؛ خطای تایپی در کد کودکان، که والدین کمتر آن را از حفظاند، رایج است. بهتر است کد ملی همهٔ اعضای خانواده را در جایی امن، مثلا یادداشتی رمزدار در گوشی، نگه دارید تا هنگام نیاز، از روی شناسنامههای مختلف دنبالش نگردید.
ابزارهای مرتبط
برای اعتبارسنجی شمارههای دیگر، تشخیص بانک از شماره کارت و اعتبارسنجی شماره شبا را ببینید. همهٔ ابزارهای اعتبارسنجی ایرانی در کد ملی، کارت و شبا کنار هم جمع شدهاند.
آخرین بازبینی محتوا: · تیم تحریریه ابزار جیبی