0581{{ الگوریتم تشخیص صحت شماره کارت های بانکی و اعتباری }}
امروزه در اکثر نرم افزارهای تولیدی نیاز به استفاده از شماره کارت های اعتباری یا کارت های بانکی برای پرداخت یک سری از مزایا یا کمک های غیر نقدی برای پرسنل و یا افراد تحت پوشش شرکت های و موسسات مختلف می باشد.
از طرفی متاسفانه در حال حاضر هیچ الگوریتمی برای تشخیص صحت کد ورودی در اختیار برنامه نویسان قرار داده نشده است که به راحتی بتوانند صحت کد های 16 رقمی که به عنوان شماره کارت در اختیار آنها قرار می دهند را تشخیص دهند که همین مساله نگرانی هایی را در بحث کنترل پرداخت ها و امورمالی بوحود می آورد.
اخیرا با توجه به نیاز خودم به کنترل صحت شماره کارت ها ،الگوریتم مربوط به کنترل شماره 16 رقمی کارت های اعتباری و بانکی را بدست آوردم و چون مطمئن هستم افراد زیادی هم همین نیاز را دارند روال انجام کار را در این جا توضیح می دهم
شماره روی کارت های اعتباری یا کارت های بانکی شماره ای است 16 رقمی که از سمت چپ رقم اول بیانگر نوع یا کاربرد کارت (برای کارت های بانکی و اعتباری این رقم می تواند 4 یا 5 یا 6 باشد ) و 5 رقم بعدی بیانگر شماره شناسایی صادر کننده کارت و ارقام 7 تا 15 بیانگر شماره حساب یا شماره منحصر به فرد در مرکز صادرکننده کارت و رقم آخر آن هم یک رقم کنترل است که از روی 15 رقم سمت چپ بدست می آید. برای بررسی کنترل کد کافی است مجدد از روی 15 رقم سمت چپ صحت رقم کنترل را محاسبه کنیم
ساختار شماره کارت ها در زیر نشان داده شده است
ساختار کد 16 رقمی کارت های بانکی و اعتباری |
|||||||||||||||||
ارقام کد | رقم کنترل | شماره منحصر به فرد در مرکز صادر کننده کارت برای | شناسه صادر کننده | نوع كارت | |||||||||||||
موقعیت |
16 |
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 |
1- برای محاسبه رقم کنترل از روی سایر ارقام ، از سمت چپ و با شروع از موقعیت 1 تا موقعیت 16 ، ارقام موقعیت فرد را در 2 و ارقام موقعیت زوج را در یک ضرب می کنیم، اگر حاصل ضرب هر مرحله بیشتر از 9 شد 9 واحد از آن کم کنید تا یک رقمی شود و سپس اعداد حاصل را با هم جمع می کنیم.
2- اگر عدد حاصل از اجرای مرحله یک بر 10 بخش پذیر باشد ، شماره کارت صحیح قلمداد می شود در غیر اینصورت شماره کارت صحیح نمی باشد
مثال : آیا کد 6274129005473742 یک شماره کارت بانکی معتبر است؟
برای این منظور
ساختار کد 16 رقمی کارت های بانکی و اعتباری |
||||||||||||||||
ارقام کد | رقم کنترل | شماره منحصر به فرد در مرکز صادر کننده کارت برای دارنده کارت | شناسه صادر کننده | نوع كارت | ||||||||||||
موقعیت |
16 |
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 |
ارقام کارت |
2 |
4 | 7 | 3 | 7 | 4 | 5 | 0 | 0 | 9 | 2 | 1 | 4 | 7 | 2 | 6 |
الگوی ضرب |
1 |
2 | 1 | 2 | 1 | 2 | 1 | 2 | 1 | 2 | 1 | 2 | 1 | 2 | 1 | 2 |
محاسبه حاصل ضرب | 2 | 8 | 7 | 6 | 7 | 8 | 5 | 0 | 0 | 9 | 2 | 2 | 4 | 5 | 2 | 3 |
حاصلجمع ضرب ارقام کارت در الگوی مورد نظر رابا توجه به روش گفته شده محاسبه می کنیم این حاصل جمع در زیر آمده است. ضمنا چون رقم کنترل را نیز باید در انتهای کار به حاصل جمع مورد نظر اضافه کنیم برای راحتی رقم کنترل را نیز در یک ضرب کرده و به مجموع می افزاییم. پس الگوی ضرب به صورت 16 رقمی 2121212121212121 خواهد بود که هر رقم از الگو در رقم همو موقعیت آن از شماره کارت ضرب می شود ( در هر مرحله چنانچه حاصلضرب رقم الگو ضرب در رقم کارت بیشتر از 9 بود 9 واحد از نتیجه حاصلضرب کسر می کنیم). در زیر 16 مورد ضرب الگو در 16 رقم شماره کارت مورد بررسی در این مثال ،نمایش داده شده است
6*2=12 -> 12-9=3
2*1=2
7*2=14 -> 14-9=5
4*1=4
1*2=2
2*1=2
9*2=18 ->18-9=9
0*1=0
0*2=0
5*1=5
4*2=8
7*1=7
3*2=6
7*1=7
4*2=8
2*1=2
8+7+6+7+8+5+0+0+9+2+2+4+5+2+3+2=70
چون 70 بر 10 بخش پذیر است پس شماره کارت معتبر می باشد
برای بررسی صحت شماره کارت ، کد 16 رقمی کارت بانکی یا اعتباری مورد نظر را در زیر وارد کرده و بر روی دکمه کنترل شماره کارت کلیک کنید.
کنترل صحت شماره کارت های بانکی و اعتباری | |
کد 16 رقمی کارت مورد نظر را وارد کنید | |
واژگان: تشخیص صحت شماره کارت، کارت بانکی ،کارت اعتباری، الگوریتم تشخیص
منبع = www.aliarash.com
دانلود پروژه
نظرات شما عزیزان:
موضوعات مرتبط: 153- فرمول و الگوریتم ، 154 - مقالات ، ،
برچسبها:
700-روش حذف کردن اکانت و حساب تلگرام با کامپیوتر – Delete Telegram
699 - آموزش نصب همزمان چند تلگرام روی کامپیوتر
698- نصب همزمان 29 بیست و نه تلگرام رنگا رنگ بر روی یک گوشی بدون نیاز به روت
697 - ساخت آیکن بدون استفاده از نرم افزار جانبی
696 - نصب همزمان 7 هفت اینستاگرام در یک گوشی
695 {{ آموزش فریم ورک FuelPHP برای اولین بار به زبان فارسی }}
694 {{ اموزش نصب ابزار PHP در Visual Studio }}
693 {{ فیلم آموزش کامل و جامع سیستم مدیریت محتوای دیتالایف }}
692 {{ چگون یک سایت رایگان راه اندازی نمائیم }}
691 {{ تفاوت بانک اطلاعاتی مبتنی بر SQL با NOSQL و NEWSQL }}
690{{ آموزش بانک اطلاعاتی cassandra }}
689{{ آموزش بانک اطلاعاتی گراف دیتابیس(لینک اصلاح شد) }}
688{{ آموزش بانک اطلاعاتی MongoDB(لینک اصلاح شد) }}
687 {{ آموزش بانک اطلاعاتی neo4j (SQL }}
686 {{ دانلود فیلم آموزش بانک اطلاعاتی spanner }}
685 {{ دانلود فیلم اموزش شناخت مبنا ها و عملیات ریاضی در مبناهای مختلف }}
0684{{ آموزش تخصصی فارسی کردن منوهای گوشی های اندروید بدون نیاز به روت }}
0683{{ آموزش برنامه نویسی اندروید AndroidC }}
0682{{ دانلود کتاب های دوره های بین المللی طراحی وب سایت }}