समझाइश · उदाहरणों के साथ

चेकसम कैसे काम करते हैं

कार्ड नंबर, आईबीएएन, टैक्स आईडी एवं क्रिप्टो पते में सभी एक या दो छिपे हुए अतिरिक्त अंक होते हैं, जो अन्य अंकों से गणना किए जाते हैं। अगर एक अक्षर गलत टाइप हो जाए तो गणना सही नहीं आती — इसी कारण एक वैलिडेटर तुरंत, ऑफलाइन ही टाइपिंग की गलती को पहचान सकता है, बिना बैंक या ब्लॉकचेन से पूछे।

चेकसम क्या है?

एक चेकसम (या चेक डिजिट) जानबूझकर बनाई गई अतिरिक्त जानकारी है। जब कोई संख्या जारी की जाती है, तो उसके एक या अधिक अंक स्वतंत्र रूप से नहीं चुने जाते: उन्हें बाकी अंकों से एक निश्चित नियम के अनुसार गणना किया जाता है। जो भी उस नियम को जानता है, वह बाद में उन अंकों की पुनः गणना करके तुलना कर सकता है। अगर वे मेल खाते हैं, तो संख्या आंतरिक रूप से सुसंगत है। अगर नहीं, तो कुछ गलत टाइप हुआ है, गलत पढ़ा गया है या भ्रष्ट हो गया है।

चेकसम केवल इतना ही वादा करता है। यह यह नहीं बताता कि खाता मौजूद है या नहीं, उसका मालिक कौन है या उसमें क्या है — इस बात को इस साइट पर प्रत्येक वैलिडेटर बार-बार दोहराता है, क्योंकि इन दोनों को आसानी से भ्रमित किया जा सकता है।

उदाहरण 1 — लुह्न, कार्ड-नंबर एल्गोरिथ्म

वीज़ा, मास्टरकार्ड एवं अधिकांश अन्य भुगतान कार्डों में लुह्न का उपयोग किया जाता है। क्लासिक उदाहरण लें 7992 7398 713। सबसे दाएँ वाले अंक से शुरू करके, हर दूसरे अंक को दोगुना करें; अगर दोगुना करने पर दो अंक आएँ, तो उनके अंकों को जोड़ दें। फिर सब कुछ का योग निकालें।

अंकदाएँ से स्थितिदोगुना?इसे इस प्रकार गिना जाता है
3चेक डिजिट3
1दाएँ से दूसरा1 × 2 = 22
7तीसरा7
8चौथा8 × 2 = 16 → 1 + 67
9पाँचवाँ9
3छठा3 × 2 = 66
7सातवाँ7
2आठवाँ2 × 2 = 44
9नौवाँ9
9दसवाँ9 × 2 = 18 → 1 + 89
711वाँ7

दाईँ ओर वाले कॉलम का योग 3 + 2 + 7 + 7 + 9 + 6 + 7 + 4 + 9 + 9 + 7 = 70 है। सत्तर दस से विभाज्य है, इसलिए यह संख्या वैध है। यदि आप किसी एक अंक को बदल दें तो कुल योग दस का गुणज नहीं रहेगा। इसे क्रेडिट कार्ड वैलिडेटर पर आज़माएँ — यह आपके डिवाइस पर यही गणना करता है।

उदाहरण 2 — भारित योग (ISBN-10)

कई राष्ट्रीय पहचान पत्रों में भारित योग का उपयोग किया जाता है: प्रत्येक अंक को एक निश्चित भार से गुणा करें, उनका योग लें एवं शेषफल की जाँच करें। ISBN-10 इसका सबसे स्पष्ट उदाहरण है। 0-306-40615-2 के लिए भार 10 से 1 तक है:

0×10 + 3×9 + 0×8 + 6×7 + 4×6 + 0×5 + 6×4 + 1×3 + 5×2 + 2×1 = 132

132 ठीक 11 × 12 है, इसलिए मॉड्यूलो 11 का शेषफल शून्य है एवं ISBN वैध है। ब्राज़ील का CPF, पोलैंड का PESEL एवं दर्जनों अन्य पहचान पत्र इसी पैटर्न का अनुसरण करते हैं; उनके अपने भार एवं मॉड्यूलस होते हैं — इसी कारण एक बैच ID सत्यापक एक सेकंड में हजारों पहचान पत्रों की जाँच कर सकता है।

उदाहरण 3 — IBAN एवं मॉड 97

अंतर्राष्ट्रीय बैंक खाता संख्याओं में ISO 7064 मॉड 97-10 का उपयोग किया जाता है; यह दो चेक अंकों वाली एक अधिक मजबूत योजना है। मानक उदाहरण GB82 WEST 1234 5698 7654 32 लें:

  1. देश के अनुसार लंबाई की जाँच करें: एक ब्रिटिश IBAN 22 अक्षरों का होता है। ✓
  2. पहले चार अक्षरों को अंत में ले जाएँ: WEST12345698765432GB82
  3. प्रत्येक अक्षर को दो अंकों में बदलें (A = 10 … Z = 35): W→32, E→14, S→28, T→29, G→16, B→11; इससे 3214282912345698765432161182 प्राप्त होता है।
  4. उस संख्या को 97 से विभाजित करें। शेषफल ठीक 1 होना चाहिए — और ऐसा ही है।

चूँकि 97 एक अभाज्य संख्या है एवं किसी भी दो अंकों के अदला-बदली से बड़ी है, मॉड 97 हर एक अक्षर संबंधी त्रुटि एवं हर एक अक्षरों के अदला-बदली की घटना को पकड़ लेता है; केवल लगभग एक यादृच्छिक स्ट्रिंग ही संयोगवश इस परीक्षण में उत्तीर्ण हो पाएगी। IBAN सत्यापक इनमें से प्रत्येक चरण की सफलता/असफलता दर्शाता है।

क्रिप्टो पते: हैश से बनी चेकसम

बिटकॉइन और एथेरियम पतों में अधिक सख्ती है, क्योंकि वहाँ एक टाइपिंग त्रुटि से पैसा स्थायी रूप से किसी अन्य के पास चला जाता है। पुराने बिटकॉइन पते (1…, 3…) बेस58चेक का उपयोग करते हैं: पते का डेटा SHA-256 से दो बार प्रोसेस होता है और परिणाम के पहले चार बाइट्स को चेकसम के रूप में जोड़ दिया जाता है। एक ही गलत अक्षर से हैश पूरी तरह बदल जाता है, इसलिए ऐसी त्रुटि नजरअंदाज होने की संभावना लगभग चार अरब में एक है। नए bc1… पते बेच32 या बेच32एम का उपयोग करते हैं, जो एक त्रुटि-सुधार कोड है जो चार अक्षरों तक की किसी भी त्रुटि का पता लेना सुनिश्चित करता है। एथेरियम का EIP-55 अपना चेकसम ऊपरी और निचले अक्षरों के पैटर्न में छिपाता है.

ब्राउज़र में इन एल्गोरिथ्म्स को लागू करके बिटकॉइन एड्रेस वैलिडेटर और एथेरियम एड्रेस वैलिडेटर हर पेज लोड पर आधिकारिक टेस्ट वेक्टर्स के साथ खुद की जाँच करते हैं.

संक्षेप में योजनाएँ

योजनाउपयोग करने वालेपकड़ता हैकिसी यादृच्छिक त्रुटि के नजरअंदाज होने की संभावना
लुह्न (mod 10)क्रेडिट एवं डेबिट कार्ड, IMEI, कई राष्ट्रीय पहचान पत्रहर एक अंक की त्रुटि और अधिकांश आसन्न अदला-बदलीलगभग 10 में 1
ISO 7064 mod 97-10आईबीएएन, कुछ कर एवं कंपनी नंबरहर एक त्रुटि एवं हर एक अक्षर-स्थान परिवर्तनलगभग 97 में से 1
भारित योग, mod 10 या 11आईएसबीएन-10, ब्राज़ील का सीपीएफ, पोलैंड का पीईएसईएल एवं कई पहचान पत्रअकेली त्रुटियाँ एवं अधिकांश अक्षर-स्थान परिवर्तनलगभग 10 में से 1 या 11 में से 1
बेस58चेक (डबल SHA-256, 4 बाइट्स)बिटकॉइन के पुराने पते (1…, 3…)कोई भी टाइपिंग त्रुटि, अत्यधिक संभावना के साथ पकड़ी जाएगीलगभग 4 अरब में से 1
बेच32 / बेच32एम (बीसीएच कोड)बिटकॉइन सेगविट एवं टैपरूट पते (bc1…)गारंटीशुदा: अधिकतम 4 अक्षरों तक की त्रुटि होने पर भी सही रहेगाएक अरब में से नीचे
ईआईपी-55 (केकैक-256 केसिंग)इथेरियम पतेटाइपो, ऊपरी एवं निचले अक्षरों के पैटर्न के कारणमिश्रित केस वाले इनपुट के लिए बहुत कम

आखिर क्यों एक वैलिडेटर आपके डिवाइस पर चलना चाहिए?

ऊपर दी गई सभी बातें आपके पास पहले से मौजूद अंकों पर आधारित अंकगणित हैं। वैलिडेटर के लिए कार्ड नंबर, टैक्स आईडी या वॉलेट पता सर्वर पर भेजने का कोई कारण नहीं है — और ऐसा न करने का बहुत अच्छा कारण भी है। इस साइट पर मौजूद प्रत्येक वैलिडेटर स्थानीय रूप से ही चलता है; ऑफलाइन टूल्स की सूची उन्हें एक साथ समूहित करती है, एवं हमारी टूल द्वारा आपके डेटा को अपलोड किए जाने की जाँच करने की गाइड बताती है कि किसी भी साइट के लिए बीस सेकंड में इसकी पुष्टि कैसे करें।

FAQ

क्या एक वैध चेकसम का मतलब है कि वह नंबर असली या सक्रिय है?

नहीं। चेकसम केवल यह साबित करता है कि अंक आंतरिक रूप से सुसंगत हैं — यानी वह नंबर अस्तित्व में हो सकता है। यह आपको यह नहीं बता सकता कि खाता खुला है या नहीं, उसका मालिक कौन है, या उसका शेष राशि कितनी है। इस साइट पर मौजूद प्रत्येक वैलिडेटर पृष्ठ पर यही बात बताता है, क्योंकि यह अंतर महत्वपूर्ण है।

क्या ऐसा संभव है कि गलत नंबर फिर भी वैध पाए जाएँ?

यह स्कीम पर निर्भर करता है। एक मॉड-10 चेक डिजिट लगभग 10 में से 1 यादृच्छिक त्रुटि को पास होने देता है; IBAN का मॉड 97 लगभग 97 में से 1 त्रुटि को पास होने देता है; 4-बाइट वाला Base58Check चेकसम लगभग 4 अरब में से 1 त्रुटि को पास होने देता है। इन सभी का महत्वपूर्ण गुण यह है कि आम मानवीय त्रुटियाँ — एक गलत डिजिट, दो डिजिटों की अदला-बदली — इन सभी द्वारा पकड़ी जाती हैं।

कुछ पहचानकर्ताओं में चेकसम क्यों बिल्कुल नहीं होता है?

पुरानी या सरल स्कीमें रजिस्ट्री में खोजने हेतु डिज़ाइन की गई थीं, ऑफलाइन जाँचने के लिए नहीं, और कुछ नंबरिंग प्रणालियाँ इस प्रथा से पहले ही अस्तित्व में थीं। ऐसे मामलों में वैलिडेटर केवल लंबाई एवं प्रारूप की जाँच कर सकता है।

क्या मेरा कार्ड या आईडी नंबर वैलिडेटर में पेस्ट करना सुरक्षित है?

केवल तभी जब वैलिडेशन आपके डिवाइस पर ही हो। चेकसम आपके पास पहले से मौजूद डिजिटों पर ही गणितीय प्रक्रिया है, इसलिए वैलिडेटर द्वारा उन्हें सर्वर पर भेजने का कोई वैध कारण नहीं है। आप हमारे गाइड में वर्णित एयरप्लेन-मोड टेस्ट के जरिए यह पुष्टि कर सकते हैं कि कोई टूल आपका डेटा अपलोड कर रहा है या नहीं।

चेकसम, हैश एवं एन्क्रिप्शन में क्या अंतर है?

चेकसम एक छोटा चेक डिजिट है जो आकस्मिक टाइपिंग त्रुटियों को पकड़ने हेतु डिज़ाइन किया गया है। क्रिप्टोग्राफिक हैश एक लंबा फिंगरप्रिंट है जिसे इस तरह डिज़ाइन किया गया है कि जानबूझकर किया गया परिवर्तन भी पहचाना जा सके एवं मूल डेटा पुनः प्राप्त न किया जा सके। एन्क्रिप्शन डेटा को ऐसा बदल देता है कि उसे केवल एक कुंजी के साथ ही पढ़ा जा सके। Base58Check अपना चेकसम बनाने हेतु हैश का उपयोग करता है, इसीलिए इसे आकस्मिक रूप से धोखा देना बेहद कठिन है।