ক্রেডিট কার্ড জেনারেটর কিভাবে কাজ করে এবং কেন কাজ করে?

প্রারম্ভিকতা

আমরা অনেকেই প্রায় সময় দেখি যে BIN এর মাধ্যমে ক্রেডিট কার্ড জেনারেট করা হয় এবং কিছু কিছু ক্ষেত্রে সেইসব কার্ড হতে পেমেন্ট পোর্টালে ট্রায়াল ইত্যাদিও নেওয়া সফল হয়।
তবে এখানে যে প্রশ্নটি আমাদের মনে আসে না তা হলো – এগুলো সত্যিই কি ক্রেডিট (অথবা ডেবিট) কার্ড? যদি এগুলো বাস্তবে এক্সিস্ট না করে তবে কেন ঐসব কার্ড ডিটেইলস হতে পেমেন্ট পোর্টাল বাইপাস করা যায়? আসলেই কি ঐসব কার্ড দিতে সত্যি সত্যিই আর্থিক লেনদেন হয়?

চলুন উত্তরগুলো খোঁজা যাক…

BIN কি?

BIN হলো Bank Identification Number যা মূলত একটি কার্ডের প্রাইমারী পরিচিতি প্রদান করে যেমন প্রথম ৬ বা ৮ সংখ্যা (ডিজিট) আসলে (১) কার্ডটি কোন ব্যাংকের (২) কোন দেশের বা রিজিওন আইডিয়েন্টিফিকেশান (৩) কার্ড নেটওয়ার্ক পরিচিত (Visa / MasterCard / AmEx) (৪) কার্ড টাইপ (Debit / Credit / Prepaid) ইত্যাদি জানান দেয়।

BIN দিয়ে কিভাবে কার্ড জেনারেট হয়?

সাধারনত BIN তথ্য যেহেতু একটি কার্ডের প্রাইমারি আইডিয়েন্টি প্রদান করে তাই সেই একই BIN প্যাটার্ন অনুসারে Random Number Generation এবং Luhn Algorithm এর সহায়তায় অসংখ্য ডেমো কার্ড তৈরী করা পসিবল হয়।
যদি স্ট্রাকচারাল ইঞ্জিনিয়ারিং অনুসারে প্রকাশ করা হয় তবে স্বরূপ এমন হবে:

[BIN 6] + [Random 9] + [Last checksum digit Based Luhn Algorithm]

কার্ড আদতে ভ্যালিড যাচাই হয় কিভাবে?

মূলত উপরোক্ত Luhn Algorithm এর checksum আসলে এটি যাচাই করে কার্ডটির বিন্যাস বা প্যাটার্ন আদৌ সঠিক কিনা? যদি Luhn Pass করে তবে সঠিক ফরম্যাট বা বিন্যাস থাকায় সেটির ভ্যালিডিটি পাস করে।
এক্ষেত্রে যদি কার্ডের বিন্যাস তথা ফরম্যাট Luhn Pass না করে তবে সেটাকে সিস্টেম নন-ভ্যালিড বা ডেথ হিসেবে রিমার্ক করে।
এই বিষটি সহজভাবে যেকোন ডেমোনেস্ট্রেশান BIN হতে জেনারেট করা কার্ড সমূহের তথ্য স্ক্যান করলে বুঝতে সহজ হতে পারে; কমপ্লিমেন্টারী https://ccscan.vercel.app/ হতে এই ভ্যালিডেশান প্রক্রিয়াটির যথার্থতা যাচাই করতে পারেন।

Secret Key কিভাবে যাচাই হয়?

এখন একটি গুরুত্বপূর্ণ প্রশ্ন সামনে এসে যায় যে কার্ডের Secret Key তথা Expiry Date ও CVV কিভাবে যাচাই হয়? নাহ, এটি আসলে অথেন্টিক Expiry Date এবং CVV নয় বরং এটি একান্তই হাইপেথেটিক্যাল তথা অনুমানভিত্তিক।
তথাপি যেহেতু কার্ডের নাম্বার অথেন্টিক ফরম্যাটে যাচাই হয় এবং সিকিউরিটি ইনফো Expiry Date ও CVV সারফেস’লি ভেরিফাইড হয় তাই সেগুলো পেমেন্ট গেটওয়্যে একসেপ্ট করে নেয়।
যেমন CVV / CVC (অনেকে CCV বলে) Visa / MasterCard / Discover হলে সাধারণত ৩ ডিজিট এর হবে। American Express (AMEX) হলে ৪ ডিজিটের হবে।
অন্যদিকে Expiry Date সাধারণত সাবমিট করার ডেট হতে পরবর্তী ক্যালেন্ডার ডেটের জন্য এক্সপেক্ট লজিক কাজ করবে; সাধারণ জাভাস্ক্রিপ্টে লজিকটি এমন হবে:
const isAcceptableFutureDate = dateString => new Date(dateString) > new Date();

পেমেন্ট গেটওয়্যে কেন এসব কার্ড একসেপ্ট করে?

আসলে পেমেন্ট মেথড সিস্টেম যেগুলো প্রাথমিকভাবে শুধু ইউজারের ফাইনানশিয়াল ইনফরমেশন প্রদান করলে তাকে ভ্যালিডিটি প্রদান করে কিংবা শুধুমাত্র ট্রায়াল মোডের জন্য একটি ব্যাংকিং পেমেন্ট সিস্টেম দরকার হয় – এই সকল ক্ষেত্রে এরূপ কার্ডগুলো সিস্টেম অটো ফেচিং মেথডে ভেরিফাই করে নেয়; বস্তুতপক্ষে আসলেই ভ্যালিডিটি যাচাই হয় না।
ইদানীং এমন ফলস ডাটা সাবমিশন রোধ করতে বিভিন্ন সিস্টেম প্রাইমারি খুব অল্প কিছু এমাউন্ট অটো ট্রানজেকশন করে নেয় এবং এরপর পুনরায় তা ফিরিয়ে দেয় ইউজার’কে – যেন এমন ফ্রড তথ্য সাবমিট না হয়।
তথাপি সামারাইজ করে সরলভাবে এটা প্রকাশ করা যায়:
Merchant → Payment Gateway →Card Network (Visa/Master) → Issuing Bank → Clearance Verification OK

এনিওয়্যে এমনিভাবে Card জেনারেশান এবং স্ক্যানিং এর মাধ্যমে ভেরিফিকেশন যাচাই করার প্রসেস ওয়েব এপ্লিকেশন আকারে পেতে পারেন https://cccrack.vercel.app/ এর মাধ্যমে।

এই সিস্টেম কি অথেন্টিক?

এই প্রশ্নটার উত্তর করা একটু টাফ তথাপি লিগ্যালিটি যাচাই করতে হলে এটা আসলে নন-ইথিক্যাল বৈকি; তদুপরি আপডেটেড টেক জগতে ভার্নাবিলিটি ইউটিলাইজেশানের প্রেক্ষাপটে অবশ্যই এটা কার্যত অথেন্টিক (এমন পেমেন্ট গেটওয়্যে যারা কিনা সারফেস ব্যাংকিং ইনফো যাচাই করে মাত্র) – আক্ষরিকভাবে এখানে সিস্টেম ম্যানিউপুলেশান ঘটলেও বাস্তবিকভাবে কোন ইউজারের আর্থিক ক্ষতি হয় না।

কনক্লুশন

টেকজগতে দুষ্টু বুদ্ধিতে এনজয়মেন্টের জন্য এটা দারুন একটা টেকনিক বৈকি- তথাপি সিস্টেম এর সঠিক ও সুষ্ঠু ব্যবহার হউক এটাই কাম্য।
সকলের জন্য শুভকামনা ও নিরন্তর ভালোবাসা রইলো।
টেলিগ্রাম আমন্ত্রণ গ্রহন করতে পারেন – OpenEye
শুভ হউক আপনার টেক জার্নি 🙂