2009-07-08 13 views
8

अंकों की सूची के लिए चेक अंक की गणना करने के लिए उपयोग करने के लिए क्या एल्गोरिदम उपयोग किया जाता है?
सूची की लंबाई 8 और 12 अंकों के बीच है।चेक अंकों की गणना करने के लिए उपयोग करने के लिए क्या एल्गोरिदम उपयोग किया जाता है?

यह भी देखें:
How to generate a verification code/number?

उत्तर

7

Luhn algorithm क्रेडिट कार्ड उद्योग के लिए काफी अच्छा है ...

+0

लुहान एल्गोरिदम कमजोर होने का तरीका है, अंतिम अंक के साथ पहले अंक को स्वैप करने का प्रयास करें - ओउप्स, वैध! –

+0

@AlixAxel यह सच हो सकता है कि पहले और आखिरी के स्वैपिंग के परिणामस्वरूप वैध होगा लेकिन लुहान एल्गोरिदम का पूरा विचार केवल उपयोगकर्ता इनपुट त्रुटि को रोकने/कम करने के लिए है। मतलब, यदि अंतिम उपयोगकर्ता ग्राहक खाता संख्या का गलत 16 अंकों का इनपुट इनपुट करता है तो उसके पास वैध होने का 10% (अधिक या कम) मौका होता है। लेकिन अभी भी खाता विवरण के साथ खाता नाम जैसे अन्य विवरण को सत्यापित करने के लिए यह अधिक सटीक है यदि यह डेटाबेस में डेटा है। –

+2

@ एलिक्सएक्सेल विकी का अर्थ लुहान आल्गो का है या को चेक करें - आकस्मिक त्रुटियों के खिलाफ सुरक्षा के लिए डिज़ाइन किया गया है, दुर्भावनापूर्ण हमलों नहीं। आईएसबीएन चेक अंकों के लिए –

5

RichieHindle बताते हैं के रूप में, Luhn एल्गोरिथ्म काफ़ी अच्छी है। यह किसी एक त्रुटि या पारदर्शिता का पता लगाएगा (लेकिन सही नहीं) (0 और 9 की पारदर्शिता को छोड़कर)।

तुम भी, ISBN check digits के लिए एल्गोरिथ्म विचार कर सकते हैं, हालांकि पुरानी शैली ISBN के लिए, चेक अंकों कभी कभी "एक्स", जो आप के लिए एक समस्या हो सकती है आप पूर्णांक क्षेत्रों उपयोग कर रहे हैं है। नए स्टाइल आईएसबीएन में यह समस्या प्रतीत नहीं होती है। विकिपीडिया प्रणाली के सैद्धांतिक गुण करने के लिए जाना नहीं है, लेकिन मैं बहुत पहले मेरी कोडन सिद्धांत पाठ्यक्रम में ISBN नंबर का अध्ययन याद है, तो मुझे लगता है कि वे बहुत अच्छी :-) हैं

+0

+1। इससे मुझे यादें वापस लाईं ... –

2

Verhoeff, वहाँ कुछ भी नहीं बेहतर IMO है।

+0

कुछ बेहतर क्यों नहीं है? इस एल्गोरिदम के गुण क्या हैं जो दूसरों को नहीं करते हैं? –

2

मैं इसे (पोस्ट दिनांक के अनुसार) थोड़ी देर हो चुकी है पता है, लेकिन पहली बार मैं चेक संख्या एल्गोरिथ्म की जरूरत पिछले सप्ताह था।

तो मैं अधिक एल्गोरिदम की जाँच की और IMHO सबसे अच्छा समाधान (केवल अंक के लिए) Damm algorithm हो रहा है। कार्यान्वयन और परीक्षण की अधिकांश त्रुटियों का पता लगाना आसान है (सभी एकल अंक त्रुटियां और सभी पारदर्शिता त्रुटियां, लगभग सभी कूद पारदर्शिता त्रुटियां)

मेरे लिए केवल एक ही समस्या थी, क्योंकि मुझे न केवल संख्याओं से बल्कि पात्रों से भी चेक अंक की गणना करने की आवश्यकता है। अक्षरों को संख्या में स्थानांतरित करने के कई तरीके हैं, लेकिन केवल त्रुटि संख्याओं का उपयोग करने से त्रुटि का पता हमेशा कम होगा।

इन मामलों के लिए आप ISO_6346 विनिर्देश का उपयोग कर सकते हैं।

संबंधित मुद्दे