कार्ड नंबर पहली नज़र में एक जैसे लगते हैं, पर उनका क्रेडिट कार्ड नंबर प्रारूप कोई एक ही आकार बार-बार नहीं है — लंबाई नेटवर्क के साथ बदलती है, शुरुआती अंक अर्थ रखते हैं, और अंतिम अंक आवंटन नहीं बल्कि गणित का परिणाम है। यह समझना कि हिस्से एक-दूसरे में कैसे फिट होते हैं, वही चीज़ है जो सही ढाँचे वाले नंबर को केवल विश्वसनीय दिखने वाले नंबर से अलग पहचानने देती है, और यही चेकआउट फ़ॉर्म में मिलने वाले अधिकांश अनोखे सत्यापन व्यवहार की व्याख्या करती है।
नीचे के खंड संख्या को उसके हिस्सों में बाँटते हैं, बताते हैं कि छपे हुए समूहित नंबर को कैसे पढ़ें, और अंत में उन व्यावहारिक ब्यौरों पर आते हैं जो तय करते हैं कि आपका इनपुट प्रबंधन असली उपयोगकर्ताओं के सामने टिकता है या नहीं।
कार्ड नंबर के तीन हिस्से
हर कार्ड नंबर तीन फ़ील्ड का जोड़ है, जिसे संग्रह करते समय बिना विभाजक के लिखा जाता है:
- जारीकर्ता प्रीफ़िक्स। ऐतिहासिक रूप से इसे बैंक पहचान संख्या कहा जाता था और अब जारीकर्ता पहचान संख्या कहा जाता है। यह शुरुआती खंड रूटिंग सिस्टम को बताता है कि कार्ड किस नेटवर्क का है और अधिकांश मामलों में किस संस्था ने उसे जारी किया। इसकी चौड़ाई तय नहीं है; छोटे और लंबे दोनों रूप प्रचलन में हैं, और लंबाई अनुमान से नहीं, पंजीकरण से तय होती है।
- खाता अंक। यह वह हिस्सा है जो जारीकर्ता आवंटित करता है। इसकी एकमात्र शर्त यह है कि वह जारीकर्ता की श्रेणी के भीतर अद्वितीय हो। यह कोई ऐसा ग्राहक क्रमांक नहीं है जिसे आप डिकोड कर सकें, और दो लगातार खाता अंकों का एक-दूसरे से कोई संबंध नहीं होता।
- चेक अंक। सबसे निकाला गया एक अंक, जो बाकी सब से Luhn एल्गोरिदम की मदद से निकलता है। इसका उद्देश्य केवल टाइपिंग गलतियाँ पकड़ना है, और कुछ नहीं।
एक साथ पढ़ने पर तस्वीर सीधी है: संख्या का आगे का हिस्सा बताता है कि कार्ड कहाँ से आया, बीच का हिस्सा मनमाना आवंटन है, और अंत का हिस्सा टाइपिंग से बचाव है।
कार्ड नंबरों की लंबाई अलग-अलग क्यों होती है?
लंबाई को कभी एक ही मान पर मानकीकृत नहीं किया गया, क्योंकि कार्ड क्रमांकन कई राष्ट्रीय और औद्योगिक योजनाओं से निकला, जिन्हें बाद में दोबारा लिखने के बजाय एक साथ लाया गया। प्रारूप को नियंत्रित करने वाला अंतर्राष्ट्रीय मानक उन्नीस अंकों की ऊपरी सीमा तय करता है और ठीक कितने अंक होंगे, यह हर नेटवर्क और उत्पाद पर छोड़ देता है।
व्यवहार में लंबाइयों का एक छोटा समूह ही मिलता है। सोलह अंक सबसे आम हैं और कार्ड शब्द सुनकर लोग यही तस्वीर मन में बनाते हैं। पंद्रह अंक American Express के लिए मानक हैं। तेरह और चौदह अंकों के रूप भी मौजूद हैं, मुख्यतः पुराने या क्षेत्रीय उत्पादों में, और कुछ नेटवर्क विशेष कार्ड प्रकारों के लिए लंबी व्यवस्था अपनाते हैं।
सत्यापन के लिए महत्वपूर्ण निष्कर्ष यह है कि ठीक सोलह अंक लिखने वाला नियम गलत है। वह असली कार्ड ठुकराता है, और बिल्कुल ठीक परीक्षण डेटा भी अस्वीकार कर देता है। सही नियम एक सीमा स्वीकार करता है, प्रीफ़िक्स को उस नेटवर्क की अपेक्षाओं के अनुसार जाँचता है, और उसके बाद ही चेकसम चलाता है।
पहला अंक आपको क्या बताता है?
शुरुआती अंक नेटवर्क का नाम नहीं, बल्कि उद्योग का चिह्न है, और यह मानचित्रण सार्वजनिक है। यह बताता है कि आप किस तरह के जारीकर्ता से पाला पड़ रहा है, इससे पहले कि प्रीफ़िक्स का बाकी हिस्सा ठीक कार्यक्रम की पहचान करे।
| शुरुआती अंक | उद्योग खंड |
|---|---|
| 1 और 2 | एयरलाइंस |
| 3 | यात्रा और मनोरंजन |
| 4 और 5 | बैंकिंग और वित्तीय |
| 6 | व्यापार और बैंकिंग |
| 7 | पेट्रोलियम |
| 8 | दूरसंचार |
| 9 | राष्ट्रीय आवंटन |
पहला अंक अकेले कभी किसी नेटवर्क की पहचान नहीं करता। कार्ड श्रेणियाँ इन्हीं खंडों के भीतर रहती हैं: अंक चार बैंकिंग खंड का है, और उसके भीतर की एक श्रेणी किसी एक नेटवर्क से जुड़ी है, जबकि उसी खंड की दूसरी श्रेणी किसी और की है। इसीलिए ब्रांड पहचान के लिए एक से ज़्यादा अंक चाहिए, और इसीलिए केवल पहले अक्षर पर बना पहचानकर्ता हैरान करने वाले अनुपात में इनपुट का गलत लेबल लगाता है।
समूहित कार्ड नंबर कैसे पढ़ें?
कार्ड पर और अधिकांश इंटरफ़ेसों में अंक समूहों में दिखते हैं, और समूहन किसी सार्वभौमिक नियम के बजाय नेटवर्क के अनुसार होता है। सोलह अंकों वाले कार्ड के लिए चार-चार के चार समूह परिचित व्यवस्था है; American Express पारंपरिक रूप से चार, छह और पाँच में दिखता है, जो उसके पंद्रह अंकों से मेल खाता है। कुछ इंटरफ़ेस जारीकर्ता प्रीफ़िक्स को दिखाने के लिए पहला समूह छह अंकों का बनाते हैं, और कुछ संख्या को बिना तोड़े छोड़ देते हैं।
पाठक के लिए समूहन याद रखने का सहारा है। डेवलपर के लिए यह केवल प्रस्तुति है, और यही अंतर असली बग पैदा करता है: ऐसा इनपुट जो चिपकाए गए नंबर को इसलिए ठुकरा देता है क्योंकि चिपकाने में खाली स्थान आ गए, वह उसी प्रारूप को ठुकरा रहा है जिसमें कार्ड स्वयं छपा होता है। अंक संग्रह करें, समूह दिखाएं, और दोनों के बीच रूपांतरण किनारों पर करें।
प्रारूपण सत्यापन नहीं है
किसी परिचित आकार को प्रामाणिकता का प्रमाण मान लेना लुभावना है। यह प्रमाण नहीं है। कोई भी प्रीफ़िक्स किसी भी बीच के अंकों के साथ जोड़ा जा सकता है, और उसके अनुरूप अंतिम अंक निकाला जा सकता है, इसलिए परिचित कार्ड जैसा दिखने वाला नंबर पूरी तरह काल्पनिक हो सकता है।
इस लेख का सब कुछ संरचना का वर्णन करता है। यह नहीं बताता कि कोई खाता मौजूद है, कार्ड सक्रिय है या भुगतान स्वीकृत होगा, क्योंकि इनमें से कोई प्रश्न अंकों को देखकर उत्तरित नहीं किया जा सकता। इस साइट के जनरेटर से निकले सारे नंबर ठीक इसी श्रेणी में आते हैं: आकार में सही, कभी जारी नहीं किए गए।
डेवलपर के लिए: जानकारी खोए बिना इनपुट साफ़ करना
कार्ड नंबर फ़ील्ड की असुविधाजनक सच्चाई यह है कि उपयोगकर्ता उन्हें अप्रत्याशित ढंगों से भरते हैं। वे ईमेल से खाली स्थानों के साथ चिपकाते हैं, पिछले फ़ील्ड का कोई बचा अक्षर साथ ले आते हैं, खाली स्थान की जगह हाइफ़न टाइप कर देते हैं। इसे साफ़ करना ज़रूरी है; लापरवाही से करना वह तरीका है जिससे मान्य इनपुट नष्ट हो जाता है।
एक व्यावहारिक क्रम ऐसा दिखता है। दोनों सिरों से खाली स्थान हटाएँ। हर गैर-अंक हटाने के बजाय केवल उन्हीं विभाजक अक्षरों को हटाएँ जिन्हें आप सहन करना चाहते हैं, ताकि कोई अक्षर चुपचाप मिटने के बजाय स्पष्ट त्रुटि दे। परिणाम को पूरी उम्र श्रृंखला के रूप में रखें, क्योंकि संख्यात्मक प्रकार शुरुआती शून्य गिरा देगा और मान का अर्थ बदल देगा। साफ़ की गई लंबाई की तुलना पहचाने गए प्रीफ़िक्स की नेटवर्क सीमा से करें। चेकसम सबसे अंत में चलाएँ।
इसके बाद तय करें कि जो मिला उसे कैसे दिखाएँगे। टाइप करते समय खुद को पुनःप्रारूपित करने वाला फ़ील्ड डेस्कटॉप कीबोर्ड पर सुखद है और फ़ोन पर खुलकर दुश्मनी कर सकता है, जहाँ कर्सर कूदता है और बैकस्पेस अप्रत्याशित व्यवहार करता है। यदि आप टाइपिंग के दौरान अंक समूहित करते हैं, तो श्रृंखला के बीच में कोई गलती सुधारने का मामला भी जाँचें, केवल अंत से नहीं।
विफलता के संदेश भी अलग रखें। बहुत छोटा, असमर्थित अक्षर, अज्ञात प्रीफ़िक्स और विफल चेकसम — ये चार अलग-अलग समस्याएँ हैं, और जो फ़ॉर्म इन सब को एक ही अमान्य कार्ड नंबर संदेश में बदल देता है, वह उपयोगकर्ता और आप दोनों के लिए डिबगिंग धीमी कर देता है।
कार्ड टूल में नंबर जाँचना
यदि किसी विशेष आकार का नंबर चाहिए — एक नेटवर्क, एक लंबाई, एक प्रीफ़िक्स — तो कार्ड नंबर जनरेटर उन्हें बिना किसी खाते के बनाता है और आपको नेटवर्क स्पष्ट रूप से चुनने या चुनाव रैंडम छोड़ने देता है। पूर्ति मोड तब काम आता है जब आपके पास मान का कोई हिस्सा पहले से हो और अज्ञात अंक बाकी के अनुरूप भरने हों।
दो संबंधित पृष्ठ और आगे जाते हैं। नेटवर्क तुलना प्रकाशित श्रेणियाँ और उनके साथ जाने वाली लंबाइयाँ सूचीबद्ध करती है, और सत्यापन की पूरी राह ऊपर दी गई क्रम-सलाह को जाँचों के ठोस क्रम में बदल देती है।
आगे क्या करें
एक मौजूदा फ़ॉर्म को यहाँ बताए गए क्रम के सामने परखें — पहले लंबाई, फिर अक्षर, फिर प्रीफ़िक्स, फिर चेकसम — और पुष्टि करें कि हर विफलता का अपना संदेश है। इसके बाद जानबूझकर एक से ज़्यादा लंबाई फैलाने वाला छोटा समूह बनाएं, ताकि सत्यापन नियम संपादित करने वाले अगले व्यक्ति के पास जाँचने के लिए कुछ हो।