خواهش می کنم از دوستان بحث نا مرتبط نکن.
هک یا خوبه یا بده جاش اینجا نیست. به سوال دوستتون احترام بذارید. یه سوالی مطرح کرده و بحث در 9 صفحه ادامه پیدا کرده. اظهار نظرهای بی موردتون و جر و بحث هاتون فقط به شمار صفحات بی محتوای بحث اضافه می کنه.
دوستانی که اطلاعات تکنیکال نمی خوان ارائه بدن ممنون می شم مستمع بمونن.
سوال اینه:
الگوریتم تولید شارژ ایرانسل چیه؟
به زبون مادری مون هم بیان شده. اگر دقیقا در این مورد نمی خواید صحبت کنید، یه تاپیک جدید باز کنید و در مورد فواید هک بحث کنید. متشکر و پوزش می خوام اگر لحن ام تند بود.
اما نظر من در مورد سوال:
1- قطعا الگوریتم وجود داره.
2- 999'999'999'999 و یا جدیدا 999'999'999'999'999'9 عدد ممکن 12 یا 16 رقمی ممکن وجود داره. این اعداد حتی از جمعیت کره زمین هم بیشتر هستند به مراتب، پس بحث لزوم تکراری بودن کدها منتفیه.
3- الگوریتم باید با سرعت بسیار بالا صحت کد رو چک کنه، پس گشتن در دیتابیس اون هم بطور همزمان واقعا غیر عملیه. در نظر بگیرید بطور همزمان در یک زمان 20 هزار نفر در حال شارژ کردن باشن. قوی ترن الگوریتم های جستجو در لیست اعداد مرتبه n*logn دارن و این واقعا وحشتناکه وقتی بخواد تکرار هم بشه برای چندین کاربر. پس بحث جستجو هم منتفیه
4- نگاهی به یوزر و پسوردهای آنتی ویروس NOD32 می تونه کمک کنه. به نظر من کاربرد شارژ ایرانسل دقیقا مثل کاربرد پسوردهای نود32 هست. هر دو بابت اش مبلغی می گیرن. هر دو فقط یک بار قابلیت استفاده دارن.
هر دو یک کد ظاهرا بی ربط و بی معنی هستن. سعی در پیدا کردن ارتباط بین رقمها واقعا کوشش بیخودیه. دنبالش نرید. این کدها رو انسان یکی یکی تولید کرده که شما با چشم دنبال پیدا کردن ارتباط هستید.
5- قطعا معتبر بودن یا نبودن کد ها از یک تایع ریاضی استخراج می شه.
6- کد این الگوریتم دو حالت بیشتر نداره. یا در طول زمان ثابته که پس الگوریتم شناخته شده ای نیست و یک ایرانی اون رو ننوشته. چون اگر ثابت می بود و حاصل کوشش یک ایرانی به راحتی درز می کرد. و یا اگر یک ایرانی اون رو نوشته ایرانسل در بازه های زمانی مشخص این الگوریتم رو مرتبط تغییر می ده.
7- احتمال زیاد می دم که این الگوریتم خریداری شده باشه توسط اوپراتور و مثلا قراردادی برای محافظت و عدم نشر اون بسته شده باشه. قطعا اوپراتوری که میاد میلیاردها دلار هزینه می کنه واسه نصب آنتن و تجهیزات و ضرب سیم کارت نمیاد الگوریتم تولید کدهاشو که تنها ممر درآمدشه رو بده به چارتا مهندس ایرانی براش بنویسن.
8- هش Hash اصطلاح واضحی است یه توضیح کوتاه می دم اما برای دوستانی که نمی دونن چیه.
شما یه رمزی رو می نویسی روی کاغذ می خوای بدی اش به دوستت در یه جای دیگه. اما از طریق یک دوست ثالثی می خوای به دستش برسونی. حالا این وسط برای اینکه دوست ثالث کد رمز نوشته شده روی کاغذ رو نخونه میای روش رو خط خطی می کنی یا به اصطلاح هاشور می زنی. این هش یا هاشور اطلاعاتی رو روی خطوط نوشته اصلی اضافه می کنه. دوست ثالث به دلیل خط خطی بودن و مبهم بودن نمی تونه نوشته اصلی رو بخونه. کاغذ به دست دوست ات می رسه.
اون یک کاغذ دیگه بر می داره و کد رمز رو که حفظه از قبل روش می نویسه. بعدش اون هم با الگوریتم و نواخت هماهنگ با شما روش هاشور می زنه. اگر نتیجه هاشور زده خودش با چیزی که روی کاغذ شما تحویل اش دادی یکسان بود، می فهمه که شما رمز رو می دونستی. در ارسال hash هیچوقت اصل داده اصلی ارسال نمی شه بلکه کد تغییر شکل داده شده فرستاده می شه. از مقایسه دو کد هاشور خورده ، اطمینان حاصل می شه که فرستنده اطلاعات اصلی رو درست بلد بوده، همین.
حالا سوال:
آیا هش راه برگشت داره؟ یعنی از روی هش می شه به اطلاعات زیر خط خطی دست پیدا کرد؟ جواب: نه
پس چطور هش رو هک می کنن؟ جواب: یک پسورد تصادفی ایجاد می کنن، هش اش می کنن، اگر نتیجه یکسان بود می فهمن که اطلاعات اصلی چی بوده. الگوریتم هش رو از کجا میارن؟ جواب: الگوریتم های تولید هش تصادفی بدون تکرار محدود هستند و استاندارد.
پس راهکار نهایی اینه:
1- بگردیم و از یک منبع لاتین الگوریتم های هش معروف رو پیدا کنیم.
2- سورس شون رو از اینترنت پیدا کرده و روی یک کامپیوتر قوی اجرا کنیم.
3- ورودی های مختلفی بدیم تا نهایتا یک عدد 12 یا 16 رقمی بهمون برگردونه
4- یک فایل حاوی کد های رمز شارژ منقضی شده، اما معتبر ایرانسل بسازیم با بیشترین تعداد مدخل. هر چی این فایل تعداد رمزهای بیشتری داشته باشه روش زودتر جواب می ده
5- برنامه کوچیکی بنویسیم که الگوریتم هش رو روی ورودی های تصادفی بسیار زیادی اعمال کنه و نتیجه رو به همه مداخل فایل رمزشارژ ها مقایسه کنه.
کافیه این برنامه یک هفته کار کنه . به نظر من اگر شانسی باشه توی همین یک هفته پیدا می شه.
باز هم توجه کنید که الگوریتم هش یک طرفه است. نمی شه رمز شارژ رو به الگوریتم هش معکوسی بدین که داده اصلی رو بهتون بده. باید اینقدر داده بش بدین تا تصادفا رمز شارژ رو ازش بگیرین. اونوقت متوجه می شین که این رمز شارژ مربوط به این داده اصلی بوده.
حالا فهم اینکه داده اصلی چطور تولید می شه دیگه ساده است.
ایطوری می تونین شروع کنین به درست کردن رمزهای ایرانسل
من با نظر دوستمون موافقم تنها الگوريتم ميتونه كد تصادفي ايجاد كنه و در كمترين زمان و هزينه پاسخگو باشه وجود بانك اطلاعاتي در اين سطح امنيت و سرعت بسيار ريسك بالايي داره توضيح اينكه:
1- الگوريتم ايجاد كدهاي غير تكراري (هر الگوريتمي با قابليت توليد كدهاي 12 رقمي) كد را ايجاد ميكند
2- استفاده كننده كد12 رقمي را براي استفاده به الگوريتم ارسال مي كند در صورتيكه الگوريتم تا آن مرحله از كد رشد كرده باشد و كد مورد نظر قبلا به آن الگوريتم برگشت داده نشده باشد مورد قبول است (دقيقا ارسال و دريافت پارامتر و آرگومان در توابع)در غير اينصورت مردود اعلام مي گردد.
دوستان توجه كنيم كه 10به توان 12 حالت وجود دارد تا يك كد صحيح باشد پس عملا تست كدهاي تصادفي توسط شما صفر است . به قول دوستمون اين الگوريتم ممكنه يك الگوريتم HASH باشه با پيدا كردن اين الگوريتم حتي نمي شه پي به مرتبه رشدش برد چون اعداد كاملا تصادفي ايجاد ميشه . ممكنه شما اين الگوريتمو رو سيستم خودتون RUN كنيد و كدهاي ديگه اي بده پس تقريبا دسترسي به اين كدها از طريق الگوريم يا هر روش نرم افزاري غير ممكنه هر كي ادعا داره اعلام كنه در خدمتيم . البته بحث شناسايي كد از طريق آنتن و سخت افزار رو ميشه مطرح كرد .
در 12 رقمی هاشو میدونم به این صورته که 8 تای اول یوزره و 4 تای بعدی پسورد .
ولی خب خیلی ها با دستکاری درایور موبایلشون سعی در کرک کردن پسورد ها کردن و به خاطر همین بعد از یه مدت 14 رقمی هم در اومد که توش یوزر و پسورد بسته به 2 رقم آخر تغییر میکرد . و دقیقاً هیچکس نمیدونه که چطوری باید 2 رقم آخر رو ترجمه کرد که فهمید چند رقم یوزره و چند رقم هم پسورد و در هر کد ارقام یوزر و پسورد عوض میشه .
اگر کمی در این زمینه وارد بودید متوجه میشدید که دیتابیسی از کد شارژ ها به همراه سریال هاشون در بانک اطلاعات ایرانسل وجود داره.
وقتی یک نفر که عمده فروش باشه بخواد خرید عمده انجام بده میتونه با استفاده از شماره سریال ها (با کد شارژ فرق میکنه) از ولید بودن اون کارت مطمعن بشه
این کار فقط در صورتی قابل انجامه که دیتابیس داشته باشیم
سلام علیکم
سلام بر کسی که الگوریتم این شارژهای ایرانسل را می داند و هیچ نمی گوید.
از من به شما نصیحت که نگو به هیچ وجه نگو.
هر کس دیگه هم که فهمید هیچی نگه.
آخه مگه عقلش کمه که بیاد اینجا الگوریتم را فاش کنه.
خوب چه کاریه؟
یه سفره ای ایرانسل پهنه کرده اونی که الگوریتم رو بلده هم اگه یکم از فکرش استفاده کنه بشینه سر همین سفره دیگه.
سلام
یه چیزی در مورد این الگوریتم:
این فرمول خیلی هاتون دیدین.
مثلاً:
i^3 mod 10
RSA
حالا بیاین بجای i از اعداد 0 تا 9 استفاده کنید.
چیزی که دیده میشه در خروجی یه لیست اعدادی که ما می تونیم بهش بگیم random (که نیست) که تکراری هم نیست.
من نمیگم دقیقاً از همین الگوریتم استفاده کرده ولی شاید شبیه چنین چیزی باشه.
(هنوز سر حرف قبلیم هستم.)
با تشکر
آخرین ویرایش به وسیله Cancer : جمعه 01 مهر 1390 در 20:59 عصر
آقا الگوریتم نداره عمرا . چون اگه داشت و لو میرفت ، مجبور میشدن کل شارژا رو از سوپرمارکت ها جمع کنن یا همرو باطل کنن .
هر وقت بی کار شدین همینجوری Random تست کنین بیشتر جواب میده .
Random rnd = new Random();
for (int j = 0; j < 10; j++)
{
string t = string.Empty ;
for (int i = 0; i < 12; i++)
{
t += rnd.Next(0, 10).ToString();
}
Console.WriteLine(t);
}
سلام
فکر رندوم شارژ کردن رو که اصلا نباید کرد. اگه رندوم بود که منو شما اگه چند تا عدد رو هوا می زدیم بالاخره حداقل یکیش که در میومد!!
به نظر من کدهای شارژها به دو صورت تولید میشن. دسته اول که بصورت کارت هستند, قبلا تولید شده و توی بانک اطلاعاتی ذخیره شده اند. اما دسته دوم کد شارژهایی هستند که ما از خودپردازها و محیط اینترنت خریداری می کنیم که من فکر می کنم این نوع کدها بصورت آنی تولید شده, در بانک اطلاعاتی ذخیره شده و بعد به دست ما میرسه. من تا حالا تست نکردم که این نوع شارژ ها تاریخ انقضا دارن یا نه (مثلا بعد از یک مدتی باطل شه!) اگه کسی چیزی می دونه بگه.
کدهای شارژ به همراه شماره سیمکارت هم یه مدتی توی بانک اطلاعاتی ذخیره میشن (جهت پیگیری). ازاین جهت می گم چون کدی که قبلا توسط یک خط استفاده شده رو دوباره توسط همون خط بزنیم میگه که قبلا استفاده شده.
اما در مورد نحوه تولید اینکه حتما یک الگوریتم خاصی وجود داره. ما که ماییم برای تولید یک کد فعالسازی نرم افزار, انواع و اقسام عملیات ریاضی رو روش انجام می دیم! حالا شرکت به این بزرگی که قراره میلیونها نفر ازش استفاده کنند جای خود داره.
در خصوص هک شبکه ها اینکه, من خودم رشته مخابرات نیستم. اما دانشجویای رشته مخابرات میگن که راه نفوذ به این شبکه ها وجود داره و استاد اونا هم همین نظر رو داره! همون طور که شخصی یکی از دستگاه های خودپرداز رو توسط لپ تاپ و شبکه وایرلس هک کرده بود طوری که پول ها ازش سرازیر شده می شد!!! اینا هم راه نفوذ داره. فقط باید یه خورده مخ بود و راهشو بلد بود. خطهای ایرانسل مشکل هم داره. مثلا یهو می بینی 1000 تومن از شارژ کم میشه! یا مثلا 40 تا پیامک نا معلوم یه دفه برات میاد! یا پیامک فارسی خالص رو 16 تومن حساب می کنه! و یا اینکه یه شب که برام اتفاق افتاد از پیامک هایی که می فرستادم شارژ کم نمی کرد!! کلا اپراتور باحالیه!
آقایون چرل نشستین دارین حرف بیخود میزنید
شما ها که این کاره این بعیده
بیاین یه اپ بنویسید که شماره کارت رو بهش بدیم تو دیتابیس ذخیره کنه (من دیتابیس ندارم وگرنه براتون میذاشتم) {هر هفته هرکی 1 شارژ که بتونه بزنه که کار خراب نشه}
بعد از یه مدت بریم ببینیم میشه فهمید چه جوریه یه نه
بیخودی نگین رندم یا نیست بیاین عملی ببینیم
ممنون
در الگوریتم هم عدد random استفاده می شه، هم hash استفاده می شه برای صحت اطلاعات... از فکر hack هم بیاید بیرون. ضمنا یه نکته هم هست : خیلی از الگوریتم ها رو حتی اگه بدونی باز هم نمی تونی سیستم رو هک کنی (شاید بعد 100 سال بتونی...)
سلام سلام سلام
یکم موج منفی:
کار گروهی بی فایده ست.
اولین کسی که تو گروه به نتیجه برسه می ره و پشت سرشم نگاه نمی کنه.
جریانه همون سفره ست.
راستی کارت شارژ ها هم به احتمال خیلی خیلی بالا تاریخ انقضاء دارن.
فکر رندم رو هم از سرتون بیارین بیرون که بعدش بره توی بانک اطلاعاتیشو چک کنه ببینه هست یا نه.
قطعاً فرمول داره، شایدم فرمولها داره.
ولی یه مسئله ی بزرگ اینه که چرا تا حالا کسی نتونسته تو گوشیش رندم بزنه و کار کنه؟
شاید اون عدد رندمی که می زنه ماله یکی از همون کارت شارژهایی باشه که توی مغازه ها هستن.
ولی چرا تا حالا اتفاق نیفتاده؟
با سلام خدمت همه
خیلی از دوستان دارن حاشیه میرن و به همین دلیل به نتیجه نمیرسن.
موضوع اول : تاریخ شروع تاپیک رو نگاه کنید - چیزی حدود دوساله روش بحث میشه و فقط دارن نظر میدن .
موضوع دوم : الگوریتم داره چون یکی از دوستان حدود 12 سیم کارت داشت و هرکدوم حدود 200 هزار بعضی یا کمتر شارژ روشون بود - جریان از این قراره که این آقا بدون تجربه علمی و دانش کافی(منظورم تحصیلات دانشگاهیه) شروع به پیدا کردن کدها کرد - با یه ماشین حساب مهندسی ساده ویه سررسید که از اون برا نوشتن کدها استفاده میکرد(البته هر کدی که استفاده میکرد ممکن بود مثلا این کد مربوط به ش 1000 و کد تولید شده بعدی مربوط به ش 20000باشه(این سرنخ مهمیه) - و اینو هم بگم از قول این دوستم :
دوتا مسله هست :
تا زمانی که کدها 12 رقمی بود قابل تشخیص بودن و لی از وقتی کدها 16 رقمی شدن خیلی سخت پیداشون میکنه و میگه که کد قابل استفاده نیست و مسله دوم هم اینه که ایرانسل کدهای شارژشو تو دسته های مختلف قرار داده که مدام بین این دسته ها سویچ میشه (کد 1000و2000و5000و10000و...) بنابراین الگوریتم داره و قابل تشخیصه ولی هرچند وقت یه بار اونو عوض میکنه (جهت حفظ امنیت)
البته باید بگم که این دوستمون هیچوقت الگوریتمشو بهم نگفت ولی هروقت خواستم از خطش به هر میزان استفاده کنم چیزی نمیگفت .
دوست من ، دوستتون به احتمال زیاد باهاتون شوخی کرده.
من هم دوستی داشتم که سایت فروش کارت رو هک کرد و نشونم هم داد. از اون هم هر چقدر دلت می خواست شارژ می گرفتی چیزی نمی گفت.
اگر واقعا الگوریتم رو داره، بگیرید بگذارید، در غیر اینصورت بحث شما شبیه بحث های مذهبی می شه.
علمی صحبت کنید لطفا.
توابع تبدیل تاریخ با دقت 5000 سال
پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840
پایگاه داده، تیونینگ، طراحی و پیاده سازی ..
به نظر من هم از رندوم استفاده نشده احتمال داره که یک فرمولی داشته باشه که مثلا اگه کل اعداد را در فرمول قرار دهیم جواب بر فلان عدد قابل تقسیم است و یا فرمول های دیگه
سلام
به نظر من طبق یک رابطه ای هست. یعنی هر مبلغی از شارژ، یک رابطه مخصوص به خودش رو داره که اگه بتونیم دو کارت شارژ بخریم که پشت سر هم چاپ شده، فکر کنم بشه رابطشو بین این دو عدد پیدا کرد.
کاربر دائمی
قطعا یه الگوریتم پیچیده ای داره ، کشف الگوریتم اش یه دید ریاضی قوی می خواد ، زمان می خواد تا بتونی یه همچنین الگوریتم تشخیص بدید ، احتمالا اینکه این الگوریتم بسته به زمان تغییر کنه بسیار زیاد هستش و فکر نمی کنم بشه روشی پیدا کرد ، که همیشه بتونی شارژ بگیری
به هیچ وجع نمیتونه بر اساس رندوم باشه ، چون برا اساس مباحث ارماری احتمال پیدا کردن این نوع فرمول ها بسیار بالاست.
به نظر من روشهای هک بسیار بهتر جواب میدهد تا پیدا کردن الگوریتم
سلام.
در پاسخ به دوستانی که میگن در ایجاد کد شارژها از hash استفاده شده، اینو بگم که hash فقط واسه کد کردن یک داده به کار میره،نه تولید یک داده و در تولید کارت شارژ ها هم، هیچ دلیلی وجود نداره که بعد از تولید یک کد n بیتی ، اون رو از طریق hash به یک کد 16 بیتی تبدیل کنیم!!
گیریم که شماره های اصلی شارژ hash شده و این کد 16 رقمی در اختیار مشتری باشه. پس چرا وقتی هرکی کد رو شانسی میزنه سییستم تشخیص میده که این کد معتبر نیست؟(کد hash شده که غیره بازگشته)
ببینید مثلا اگه یه سری شماره اصلی فرضا 50 رقمی باشند و اونها رو با متد hash به شماره های 16 رقمی و یکتا تبدیل کنیم، کار خودمون رو سختر کردیم و احتمال حدس یک کد رو بالا بردیم. چون حتی اگه این کارت شارج ها hash هم باشند، ماکه قرار نیست اونها رو دیکد کرده و به دیتای اصلی برسیم.فقط میخایم ازین شماره استفاده کنیم.
برای مثال بیشتر اگه شما یک database رو هک کرده و بهش دسترسی پیدا کنید،شاید بتونید با رمز عبور های hash شده کاربران به همون database وارد بشین، ولی ازون نمیتونین مثلا برای ورود به ایمیل کاربران استفاده کنید.پس میبینید که این روش برای مخفی کردن اطلاعات هست و در زمینه کد شارژ هیچ کاربردی نداره.
ولی ما در سیستم کد شارژ هیچ احتیاجی به مخفی کردن داده ی اصلی نداریم!یه لحظه فکر کنید این شماره hash باشه و ایرانسل بخاد اون رو بعد از دریافت از کاربر یا دیکد کنه (که دیکد اون غیر ممکنه!) یا بخاد با شماره های hash شده ی ذخیره شده در پایگاه داده مقایسه کنه(مطمئنا تو چند ثانیه امکان پذیر نست)
__________________________________________________ ______________________
من یک بار کارت شارژی رو خریده بودم ، خراب شد و نتونستم ازش استفاده کنم.بهد که با ایرانسل تماس گرفتم ، گفت که شماره سریال کارت رو بده که واست درستش کنم!
پس یا این کد ها از طریق شماره سریال کارت ها قابل ایجاد هستن و یا همشون با شماره سریالشون تو یه database ذخیره شدن.
__________________________________________________ ______________________
حدس من اینه که وقتی شما شماره شارژ رو وارد میکنین، توسط یک الگوریتم تشخیص داده میشه که شماره درسته یا نه، نه اینکه این شماره رو تو database جستجو کنه!!! پس نتیجه میگیریم که حتما یک الگوریتم وجود داره.
__________________________________________________ ______________________
نکته ی دیگه اینه که این کد های شارژ 100% میشه به صورت حدسی وارد بشه.چون اگه اینطوری نبود ، محدودیت "3با ر اشتباه در وارد کردن شماره" نبود.
__________________________________________________ _____________________
16 رقم داریم.با یه حساب ساده میشه با این 16 رقم:
9000000000000000 شماره ی متفاوت تولید کرد.
ولی از بین این همه شماره تنها تعداد خاصی معتبر هستند.مثلا عدد1111111111111111 معتبر نیست و امثال این عدد هم در بین این همه زیاده.
__________________________________________________ _____________________
با الگوریتم های تشخیص الگو شاید بشه به این الگوریتم رسید که اونم به این راحتیا نیست.
درسته که مدتی هست که کسی اینجا نظری نداده! ولی چون من الان یک پروژه شبیه به همین دستم دارم راجع بهش خیلی فکر کردم، فکر میکنم بهترین حالت اینه که اعدادی که تولید میشن دارای یک الگوریتم باشن یعنی مثلا با چندتا محاسبه ریاضی متوجه بشی که این عدد طبق الگوریتم خودت تولید شده یا نه! قاعدتا بعد از اینکه تعیین شد که خودت تولیدش کردی باید بتونی از داخل این شماره مثلا یک شماره سریال یا یک مشخصه غیر تکراری رو استخراج کنی و حالا کافیه چک کنی که آیا اون کدی که استخراج کردی داخل دیتابیس هست یا نه، میتونی داخل این کد بیشتر از یک مولفه رو قرار بدی و هر چقدر تعداد این مولفه ها بیشتر باشه احتمال تقلبی بودن کد کمتر میشه.
مثلا فرض کنید بطور بسیار ساده حاصل جمع اعداد اول تا نهم با سه عدد آخر یکی باشه نشون بده که این عدد با الگوریتم خودمون تولید شده (البته برای فهم مطلب این مثال ساده رو زدم، میتونه خیلی پیچیده تر باشه) حالا که عدد رو خودمون تولید کردیم فرض میکنیم عددهای موجود در ارقام فرد شماره سریال کد باشن و مثلا رقم دوم و چهارم مبلغ شارژ بر مبنای هزار تومان باشه و ارقام 6 و 8 هم مثلا روز تولید این کد باشه! فرض کنیم چیزی شبیه به این کد:
027260142534
سه رقم آخر 027
جمع ارقام اول تا نهم: 4+3+5+2+4+1+0+6+2 = 27
شماره سریال کد: ارقام فرد از 1 تا 9 یعنی: 45402
مبلغ شارژ: اعداد زوج دوم و چهارم یعنی: 32 * 1000 = 32000
روز تولید کد: اعداد ششم و هشتم: 16
حالا کافیه ما توی دیتابیس بریم به ردیفی که سریالش 45402 هست، برای اینکه مطمعن بشیم خودمون این عدد رو تولید کردیم ستون مبلغ شارژ و روز تولید داخل دیتابیس باید با اعدادی که کد شارژ تو خودش داره برابر باشه.
اگر هم کسی این عدد رو شانسی ایجاد کرد که بر حسب اتفاق شماره سریالش تو دیتابیس ما بود و روز تولیدش و مبلغ شارژش هم با اطلاعات ما توی دیتابیس یکی بود دیگه حقشه که موبایلشو به همین مبلغ شارژ کنه!
البته بگم من هنوز پروژمو انجام ندادم و هنوز دارم راجع بهش فکر میکنم. شاید لازم باشه آدم یه دیتابیس با مثلا 2 میلیارد رکورد ایجاد کنه و ببینه جستجو در این دیتابیس چقدر زمان میبره! ولی گمان نمیکنم مشکلی داشته باشه! و اصولا لزومی هم نداره که بعد از یک مدت مشخصی کدهارو توی دیتابیس نگه داشت مثلا میشه بعد از یکماه که از استفادش گذشت یا حذفشون کرد یا اینکه منتقلشون کرد به یک جدول دیگه که شاید هیچ وقت باهاش کاری نداشته باشیم!
2347680261542342
شماره های شارژ معتبر به صورت یه دیتابیس درختی ذخیره شدن
یعنی اگه ریشه رو از عمق صفر در نظر بگیریم
رقم اول در عمق یک قرار میگیره
رقم دوم در عمق دو
رقم سوم در عمق سه
و ...
رقم شانزدهم در عمق شانزده
و پیچیدگی زمانی مقایسه میشه:
شانزده
و موقع تولید عدد جدید هم میان عدد رندمی تولید میکنن که در بیش از دو رقم درختمونو نقض کنه و این عدد رو هم به دیتا بیس اضافه میکنن
جمع بندی تا اینجا
1- تولید کدهای کارت شارژ ایرانسل حتما بوسیله الگوریتم انجام میشه
دلیل: وجود شارژهای متفاوت
در واقع برای کدهای 1000 تومنی یک الگوریتم، برای دو تومنی یک الگوریتم وبرای 5000 تومان یک الگوریتم مجزا وجود داره(و نیز ده و بیست و ...)
پس قطعا با تولید کدهای رندوم، ایرانسل نمیتونه بفهمه این کد مربوط به چه قیمتیه!!
2- احتمال شانسی وارد کردن کد شارژ و درست وارد شدن اون وجود داره.
دلیل: وجود محدودیت در وارد کردن کد شارژ
توضیح اینکه امکان وارد کردن شماره ای که بطور اتفاقی با یکی از الگوریتم ها مساوی باشه وجود داره
(البته احتمالش خیلی خیلی کمه ولی به هر حال) و به همین دلیل ایرانسل از روش مسدود کردن وارد کردن کد شارژ استفاده میکنه.
اما این سوالات هنوز حل نشده و دارای ابهام هست:
3- آیا کدهای وارد شده توسط مشتری در دیتابیس ذخیره میشه؟
دو حالت وجود داره
1- یا کدی که وارد میکنیم قبلا ثبت نشده و بعد از واردن کردن در گوشی، اپراتور اونو با الگوریتم مطابقت میده و در هر گروهی که این کد وجود داشت(1000 تومانی یا غیره) با تاریخ و اعتبار و ... ثبت میکنه تا کسی دیگه نتونه ثبتش کنه
بررسی مورد اول:
در این صورت کدها باید خاصیت بازگشتی داشته باشن یعنی درین صورت شماره کدها در الگوریتم جایگزین میشن تا ببینن در صورت صحت مربوط به چه نوع شارژیه.
خب درین صورت میتونیم بگیم اگر کدهای چند صد کارت شارژ بررسی بشه احتمال پیدا کردن الگوریتم یا یه رابطه بین کدها محال نخواهد بود و درین صورت ایرانسل آی کیوی برنامه نویسای خبره ایرانی را دست کم گرفته.
************************
2- ویا کدها قبل از توزیع در مراکز فروش، در دیتابیس ثبت شده ( اطلاعاتی مثل کد-سریال-مبلغ و ...)و (مثلا ایرانسل میتونه کدهای یک سال را در دیتابیس ذخیره کنه و بره بگیره بخوابه!)
و پس از وارد کردن کد توسط مشتری، بعضی ستونهای جدول کامل میشن(تاریخ، شماره مشتری،مانده فعلی،نوع طرح،مالیات و کوفت و زهرمار)
بررسی مورد دوم:
در مورد دوم اگر بنا را بگذاریم که حجم عظیمی از اطلاعات قبلا ثبت شده و با استفاده ی مشتری از شارژ، فقط آپدیت میشه پس ایرانسل باید ترافیک بالای سایت و کم شدن سرعت دیتابیس و ... و مهمتر از همه خطر امنیتی دیتابیس را مد نظر قرار بده.
البته با سرورهای قدرتمند (که ایرانسل میتونه ازونا بهره بگیره) این مشکلات میتونه برطرف بشه
(کما اینکه بانکها نیز با وجود حجم عظیم اطلاعات دارن کارشونو بخوبی و با سرعت انجام میدن و حتی ما از توی خونه میتونیم به دیتابیس اونا دسترسی پیدا کنیم«مثل دیدن موجودی حسابمون»)
علی أی حال با وجود هکرهای زیاد داخلی و خارجی این کار چندان عاقلانه نخواهد بود و خود ایرانسل باید مراقب کارمندای خودش که به دیتابیس دسترسی دارن هم باشه تا شیطونی نکنن.
حالا یا راه سومی هم وجود داره یا ایرانسل داره از یکی ازین راهها استفاده میکنه. که در مورد اول خطر لو رفتن الگوریتم وجود داره و در مورد دوم امنیت(نظر خودم روی مورد 1 هست چون شانس پیدا کردن الگوریتم خیلی پایینه)
خواهشا دوستان اگر نظری دارن قبلش یه کم فکر کنن بعد پست بذارن!!!
من روش الگوریتمشو نمیدونم
اما خواستم واستون اتفاقی که برا دوستم افتاده بود رو بگم
1 روز دوستم شارژ 2000 هزاری ایرانسل خرید و چون دستش پر بود داد به من که واسش بخونم و اون بزنه تو گوشیش در حین زدن یکی ، دو تا از شماره هاش رو من عمدا اشتباهی خوندم (برا شوخی) زدو از قضا OK شد و دقیقا همون 2000 شارژ شد و خیلی عادی به راهمون ادامه دادیم و منم اصلا تابلو نکردم و از اونطرف زدم و برا خودم استفادش کردم.چند روز بعد از این قضیه که داشتیم با هم تو خیابون قدم میزدیم. یهو اپراتور همراه اول که یه خانوم بود ز زد و گفت که شما از کارت شارژ یه بنده خدایی از بندر عباس که ایشون خریده و سریالش رو ما زدیم تو سیستم و سیستم نشون داده که شما در حال حاضر دارید از اون استفاده میکنید. بنابراین یا خطتون مسدود میشه یا باید یه شارژ بگیرید و به فلان شماره بفرستید بماند که چه داستانایی بعدش اتفاق افتاد بین من و دوستم اما خواستم شما هم در جریان باشید
یا حق
من اگر می خواستم همچین کدهای تولید کنم هیچ وقت یک عدد رندوم نمی ذاشتم بله ترکیبی از دو یا سه عدد قرار میدادم (دو عدد 6 رقمی یه سه عدد 4 رقمی )
اینطوری دیگه خیلی سخت میشه کسی بخواد از کد ها استفاده کنه چون با تغییر یک رقم نمی تونه به مقصدش برسه و باید از هر کدوم از اعتبار رقم هایی رو تغییر بده تا به هم بخورن که عملا غیر ممکن هست( احتمالش در حد صفر هست )
چیزی مثل یوزر و پسورد که برای لاگین استفاده میشه هم باید یوزر درست باشه و هم پسورد
من روش الگوریتمشو نمیدونم
اما خواستم واستون اتفاقی که برا دوستم افتاده بود رو بگم
ba ejaze man fingilish rahat taram .
duste aziz joda az enteghadi ke azatun daram aval ino begam sharzhe irancell bude , chera operatore hamrahe aval bahatun tamas gerefte :D
darzemn age injuri bud ke harki ye karte masraf shode tu khiabun peyda mikard ke edeaye malekiat mikard ... !
این کار شدنی نیست چون اگه بیشتر از چند بار رمز اشتباه بزنی سیمکارت قفل میشه.
اتفاقا بخوبی ميشه ايرانسل رو دور زد و کد شارژ گرفت. چند راه وجود داره
راه اول= چون کد شارژ ايرانسل 16 رقميه پس نتيجه ميگيريم در نهايت 9999999999999999 عدد کد شارژ وجود داره ميتونيم 9999999999999999سيم کارت ايرانسل و 9999999999999999گوشی همراه بخريم. بعد روی هر سيم کارت يک کد 16 رقمی را امتحان کنيم. صد در صد يه چندتايی کد شارژ درست درست از آب در ميان. البته اين راه خيلی زمان ميبره اما شدنيه چه جور هم شدنيه
راه دوم = مثل هوش سياه نقشه ايی طراحی کنی و کارت شارژهای يک مغازه رو بدزدی
راه سوم = مثل هوش سياه با کامپيوتر شرکت ايرانسل رو هک کنی.
عاقا من چند بار بگم؟
برای تولید شارژ الگوریتم هست ولی بعد از تولید کد و تخصیص شماره سریال کار چاپ و ثبت در دیتابیس انجام میشه
فیلدهاشم اینهاست:
ID,Code,Phone,PDate,UDate,Edate
---
select * from ICcharges_01 where Code=$S
اگر فیلد تلفن خالی باشه قابل شارژ شدن هست وگرنه میگه کد شما استفاده شده در غیر اینصورت میگه کد اشتباهه
آقا چرا آخه کسی نمیگه
شما اگر بخوای هی بزنی یکی درست دربیاد شما سر سومی که سیمت مسدود میشه باز باید 24 ساعت صبر کنی
اونایی که میگن الکی کد بزنیم شاید درست در اومد شما بیشتر از 5 تا غلط بزنی کلا بلاک میشی دیگه کد درست هم بزنی قبول نمیکنه باید بری خدمات ارتباطی تا از بلاک درت بیاره برای همین هم کسی این کار رو نمیکنه
اگر هم کسی الگوریتمش رو بلد باشه چرا بیاد به شما بگه خوش استفاده میکنه حالش رو میبره دیگه
موفق باشید بازم سوال خوبی بود سرگرم شدیم
100 % الگوریتم داره -این قضیه توی خیلی از اعداد موجود صدق میکنه - مثل کد ملی - شماره حسابهای بانکی - شماره کارت ها - شماره شبا و..... . ببینید شما اگر یه شماره حساب الکی رو تو فیش بانکی بنویسید یا یه شماره کارت الکی رو برای انتقال بزنید سیستم بدون چک کردن شبکه میگه شماره حساب اشتباهه. حالا از کجا میفهمه عددی هست به نام checksum که از تریب اعداد قبل از خودش با یه الگوریتم خاص به دست میاد . حال موقع خوندن اون اعداد همه رو با اون الگوریتم چک میکنه و نتیجه رو با عدد checksum مقایسه میکنه اگه برابر بود اون وقت میره دیتابیس رو میگرده
کاربر دائمی
برای درس هوش مصنوعی استاد یه پروژه داده کسی میتونه کمکم کنه ؟
با استفاده از الگوریتم ژنتیک یک عدد
30 رقمی پیدا کنید که حاصل جمع ارقام آن 162 شود .
فقط یه چیزی می مونه اونم اینه که ایرانسل از کجا می فهمه اون کد چند هزار تومنیه.
پس یا از الگوریتم خود کد معلومه یا توی سیتم ثبت شده.
موافقید؟
آخرین ویرایش به وسیله dasssnj : شنبه 24 خرداد 1393 در 09:42 صبح
Write Once, Run Anywhere
بابا بیاید من بهتون شارژ بدم دیگه بحق نکنید خوبه :)
ایرانسل مثل تمام شرکت هایی دیگه ی دنیا برای این کار از شرکت دیگه ای استفاده میکنن کلا دو تا شرکت معروف تو دنیا وجود داره که کارش تولید رمزه الان حضور ذهن ندارم اسمشونو بگم . این مطلب تو دوره های مایکروسافت اموزش میدن
اینقدر ها هم پیچیده نسیت.حداقل برای آدم اینکاره.
شکستنش چند مرحله داره:
مطالعه به هم ریختگی و چگالی
تشخیص نوع تغییرات بین دو کارت
تشخیص نوع الگوریتم شامل نوع محاسبات و تغییرات entropy
تشخیص خود الگوریتم
تولید الگوریتم مشابه با hit-rate کافی
کار من و شما نیست. ولی افرادی که کارشون اینه این کار رو چند روزه انجام میدن.
نمونه کار مشابه http://en.wikipedia.org/wiki/Dual_EC_DRBG
توی این مثال با مطالعه خود الگوریتم ثابت میشه که الگوریتم random داده شده در واقع random نیست.
https://blog.0xbadc0de.be/archives/155
مثالهای زیادی هست که شکستن کد با مطالعه خروجی الگوریتم انجام میشه. مثل WEP
البته فست کد جان، این کار به فضای نمونه زیادی احتیاج داره.
توابع تبدیل تاریخ با دقت 5000 سال
پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840
پایگاه داده، تیونینگ، طراحی و پیاده سازی ..
بحث شیرین و جالبی بود ، دوستی داشتم که همه شماره های شار باطل شده رو جمع می کرد . حتی تو خیابون کف زمین کارت شارژ می دید بر می داشت . به گفته اون همون شماره ها بعد مدتی قابل استفاده بودن !! (( اما اون زمان هفت سال پیش بود و ایشون بعد یه مدت گفت که این روش دیگه جواب نمی ده !))
یه مساله دیگه هم نمی دونم به بحث کمک می کنه یا نه ، اما بهتره بگم و اون اینکه : اگر شماره شارژی رو که به سیم کارت زدید بعد چند ماه دوباره تو همون سیم کارت بزنید پیغام می ده
که این کارت شارژ قبلا" استفاده شده است ، در حالی که برای یک عدد 12 رقمی شانسی پیغام خطای دیگری ظاهر میشه
آقا همونطور که میدونید کد شارژ حدود 15 رقمه، اگه این 15 رقم رو تقسیم بر 2 کنیم یه عدد 7 رقمی و یه عدد 8 رقمی خواهیم داشت. اگه عدد 8 رقمی رو به عنوان UserName و عدد 7 رقمی رو به عنوان پسورد در نظر بگیریم، برای اینکه بتونیم پسورد یه UserName رو استخراج کنیم باید 10 ملیون پسورد رو چک کنیم. فقط برای یه یوزر نیم. اینطوری فکر کنم مساله کمی ساده تر میشه :D