2012-06-27 5 views
5

मुझे यह पता लगाने के लिए चेकसम एल्गोरिदम चुनने की आवश्यकता है जब उपयोगकर्ता ने कोड के अंत में 1 वर्ण जोड़कर 4 वर्ण [ए-जेड -9] कोड को गलत टाइप किया है (में [ए -Z0-9] भी)।टाइपिंग त्रुटियों को रोकने के लिए शॉर्ट कोड के लिए चेकसम चुनना

एएससीआईआई कोडों को सारांशित करना और मॉड्यूलो लगाने का एक बुरा समाधान है, क्योंकि 2 कुंजी स्ट्रोक को इनवर्ट नहीं किया जाएगा।

मैं शायद फ्लेचर एल्गोरिदम का उपयोग करता हूं, लेकिन मुझे यह जानना है कि कोई भी इस उपयोग के मामले के लिए डिज़ाइन किया गया एल्गोरिदम जानता है (बहुत कम बाइट, स्थिति निर्भर)?

धन्यवाद।

+0

के संभावित डुप्लिकेट [एक हल्के checksum एल्गोरिथ्म के लिए अच्छा विकल्प है?] (http://stackoverflow.com/questions/421419/good-choice-for-a-lightweight-checksum -ग्लोरिदम) – Joey

+0

वह पोस्ट जो आपने लिंक किया था एक मशीन द्वारा बनाए जाने वाले लंबे डेटा खंड के लिए चेकसम उत्पन्न करने के बारे में है। यहां पोस्टर एक एकल सत्यापन चरित्र/अंक मांग रहा है, जो मानव इनपुट (चेकसम के एक differente परिवार) के लिए उपयोगी है। –

उत्तर

8

आप आईएसओ 7064 मॉड एक्स, वाई एल्गोरिदम का प्रयास कर सकते हैं। आईएसओ विवरण के अनुसार:

जांच चरित्र प्रणाली आईएसओ में निर्दिष्ट/आईईसी 7064: 2002 (http://www.iso.org/iso/home/store/catalogue_ics/catalogue_detail_ics.htm?csnumber=31531) का पता लगाने कर सकते हैं:

  • सभी एकल प्रतिस्थापन त्रुटियों (किसी अन्य के लिए एक भी चरित्र का प्रतिस्थापन, उदाहरण के लिए 1234 के लिए 4234);
  • सभी या लगभग सभी एकल (स्थानीय) पारदर्शिता त्रुटियां (दो एकल वर्णों का पारदर्शिता, या तो आसन्न या उनके बीच एक चरित्र के साथ, उदाहरण के लिए 12345 के लिए 12354 या 12543);
  • सभी या लगभग सभी शिफ्ट त्रुटियां (पूरे स्ट्रिंग की बायीं ओर बाएं या दाएं);
  • डबल प्रतिस्थापन त्रुटियों का एक उच्च अनुपात (उसी स्ट्रिंग में दो अलग एकल प्रतिस्थापन त्रुटियों, उदाहरण के लिए 1234567 के लिए 7234587);
  • अन्य सभी त्रुटियों का उच्च अनुपात।

आप पा सकते हैं जैसे कुछ आंशिक कार्यान्वयन के होते हैं:

उदाहरण के लिए, आप आईएसओ 7064 मॉड 37,36 का उपयोग कर सकते हैं, जो 0-9 और ए-जेड (डेटा और चेक कैरेक्टर) का उपयोग कर सकते हैं।

+0

आप, महोदय, मेरा दिन बना दिया! धन्यवाद, ऐसा लगता है कि यह मेरी समस्या के लिए एकदम सही फिट है। –

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

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