PDA

View Full Version : هماهنگ کردن شماره سریال برگشتی یک کارت از دو دستگاه کارتخوان مختلف



p.parsaee
سه شنبه 28 خرداد 1392, 18:39 عصر
در بخشی از یک نرم افزار تحت وب، کارتها از کارتخوان 1 خوانده میشه و به عضوی اختصاص داده میشه. در یک ترمینال تحت ویندوزی نیز کارتها از همین کارتخوان خوانده می شن و شماره اون به دست می یاد و کارهایی به تبع اون صورت می گیره.
حالا یک ترمینال دیگه فراهم شده که وظیفه خوندن کارتها از کارتخوان خودش رو داره. یعنی کارتخوان این یکی متفاوت با کارتخوان اولی هست. همین هم باعث می شه شماره سریال هایی که از یک کارت یکسان این دو کارتخوان بر می گردونن متفاوت باشه! یعنی به بیان دیگه یه کارت با دو تا دستگاه مختلف دارای دو سریال حداقل ظاهری متفاوت هست.
مشکل این هست که هر دوتا کارتخوان باید یک شماره برگشت بدن تا بتونن با هم هماهنگ باشن.

با کارتخوان اول، وقتی کارتی خونده میشه، یک رشته برگشت داده میشه که شامل یک عدد مبنای 16 هست. مثلا برای یک کارت نمونه:


2E 6F 27 3F

که برنامه ای که کارت اختصاص میده اینو تبدیل به مبنای ده می کنه و داخل پایگاه داده ذخیره میکنه، مثلا رشته مبنای 16 بالا تبدیل به عدد صحیح زیر میشه:

779036479


کارتخوان دومی هم که کارت رو می خونه، به عنوان خروجی گزینه های مختلفی داره، مثلا خروجی مبنای 16 اون به صورت آرایه ای از بایتها هست، یک آرایه 10 خونه ای. مثلا همون کارت قبلی دارای شماره ای هست که به صورت زیر هست:

خونه اول: 49
خونه دوم: 48

خونه سوم: 53
خونه چهارم: 57
خونه پنجم: 53


خونه ششم: 52
خونه هفتم: 56
خونه هشتم: 57
خونه نهم: 55
خونه دهم: 52

حالا من موندم آیا می تونم این آرایه 10 خونه ای رو به رشته معادل مبنای 16 اون تبدیل کنم؟ یا اگه میشه چطوری ؟ اگه این رشته مبنای 16 رو تبدیل به مبنای 10 کنیم، حاصل همونی هست که کارتخوان قبلی توی پایگاه داده ذخیره کرده؟

کارت هم از نوع Mifare هست