الگویتم تشخیص صحت شناسه ملی اشخاص حقوقي

امروزه در اکثر نرم افزارهای تولیدی نیاز به استفاده از شناسه ملی اشخصاص حقوقی به عنوان یک مشخصه منحصر به فرد برای اطلاعات شخص حقوقي می باشد.

برای استعلام شناسه ملی می توانید به سایت http://www.ilenc.ir مراجعه نموده و با وارد کردن مشخصات شخص حقوقی مورد نظر اقدام به جستجوی شناسه ملی داده شده نمایید. نتیجه این جستجو محل ثبت ، نام شخص حقوقی، شماره ثبت ، شناسه ملی ، تاریخ ثبت و آدرس و کد پستی شخص حقوقی می باشد

هر چند روش بالا برای اطمینان از صحت و ارتباط شناسه داده شده با شخص مورد نظر روش خوبی است ولی همواره نیازمند داشتن یک اتصال اینترنتی بوده و به صورت موردی باید جستجو شود. (شبیه بررسی مدارک در مراحل اولیه کارها ) اما مهندسان نرم افزار و برنامه نویسان نیازمند يک الگوی کنترلی برای صحت کد می باشند تا بتوانند از ورود کد های نامعتبر جلوگیری کرده  و یا کد های موجود در سیستم را وارسی نمایند.

متاسفانه در حال حاضر هیچ الگوریتمی برای تشخیص صحت کد ورودی در اختیار برنامه نویسان وجود ندارد.

اخیرا با توجه به نیاز خودم به کنترل صحت کد ورودی ،الگوریتم مربوط به کنترل صحت شناسه ملی را بدست آوردم و چون مطمئن هستم افراد زیادی هم همین نیاز را دارند روال انجام کار را در این جا توضیح می دهم

شناسه ملی شماره ای است 11 رقمی که از سمت چپ چهار رقم کد شهرستان محل ثبت ، شش رقم بعدی کد منحصر به فرد برای شخص حقوقی دارنده شناسه در شهرستان محل ثبت و رقم آخر آن هم یک رقم کنترل است که از روی 10 رقم سمت چپ بدست می آید. برای بررسی کنترل کد کافی است مجدد از روی 10 رقم سمت چپ رقم کنترل را محاسبه کنیم

 ساختار شناسه ملی در زیر نشان داده شده است

ساختار شناسه ملی

ارقام کد رقم کنترل 10 رقم سمت چپ شناسه ملی
موقعیت

1

2 3 4 5 6 7 8 9 10
 

1- برای محاسبه رقم کنترل از روی سایر ارقام ، هر رقم را  با رقم دهگان کد +2 کرده و سپس در ضریب آن ضرب می کنیم و حاصل را با هم جمع می کنیم.

2- مجموع بدست آمده از مرحله یک را بر 11 تقسیم می کنیم

3- اگر باقیمانده برابر 10 باشد ، باقیمانده را برابر 0 قرار می دهیم

4-اگر رقم کنترل برابر باقیمانده باشد شناسه ملی صحیح فرض می شود در غیر این صورت شناسه ملی مورد نظر صحیح نمی باشد

 

مثال : آیا کد 10380284790 یک شناسه ملی معتبر است؟ (نمایش اطلاعات مالک شناسه)

برای این منظور باید براساس جدول زیر عمل کنیم. دقت کنید که ضریب ارقام دهگان به بعد عبارتند از 17 ، 19 ، 23 ، 27، 29 و همین الگو مجددا تکرار شده است

ساختار شناسه ملی
ساختار کد رقم کنترل 10 رقم سمت چپ شناسه ملی
ارقام شناسه 0 9 7 4 8 2 0 8 3 0 1
رقم دهگان +2   11 11 11 11 11 11 11 11 11 11
ضريب ارقام   17 19 23 27 29 17 19 23 27 29
محاسبه حاصل ضرب   340 342 345 513 377 187 361 322 297 348
 

هریک از ارقام سمت چپ شناسه ملی (10 رقم سمت چپ شناسه ملی) را با رقم دهگان شناسه ملی +2  جمع می کنیم و حاصل را در  را ضریب آن رقم ضرب کرده و نتیجه ها را با هم جمع می کنیم  .

دقت کنید در اینجا رقم دهگان 9 و رقم دهگان +2 برابر با 11 می باشد. بنابراین همه ارقام کد با 11 جمع شده و سپس در ضریب مربوط به خودش ضرب شده است.

(1+11)*29+(0+11)*27+(3+11)*23+(8+11)*19+(0+11)*17+(2+11)*29+(8+11)*27+(4+11)*23+(7+11)*19+(9+11)*17=3432

3432÷11=312 و R=0

چون باقیمانده برابر صفر  است پس باید رقم کنترل این شناسه برابر صفر باشد.

با دقت در شناسه ملی مورد نظر متوجه می شویم که رقم کنترل ورودی برابر صفر است پس شناسه ملی مورد نظر به عنوان یک شناسه ملی معتبر قابل قبول است.

برای بررسی صحت شناسه ملی ، شناسه ملی مورد نظرتان را در زیر وارد کرده و بر روی دکمه کنترل شناسه ملی کلیک کنید.

کنترل شناسه ملی
شناسه ملی مورد نظر را وارد کنید
 

واژگان:  تشخیص صحت شناسه ملی- شناسه ملی - الگوریتم تشخیص - الگوریتم تشخیص صحت شناسه ملی

علي آرش فروردین 1392
Email: admin@are.ir , admin@aliarash.com