सिंटेक्स:
आप शायद इन कोड को कॉपी लोग है, तो इसका मतलब है कि इन कोड को कॉपी करने के लिए आसान होना चाहिए होगा। 10^10 बहुत छोटा है, क्योंकि गेमकैट बताता है। kgiannakakis का एक बेहतर विचार है, लेकिन इससे एक और समस्या आती है: "1" बहुत "आई" जैसा दिखता है। "0", "सी", "ओ" और "क्यू" भी काफी समान हैं। यह एक बड़ी समस्या नहीं है। एक सुरक्षित अल्फाबेट परिभाषित करें: "ABDEFGHJKLMNPRSTUVXYZ" (सीओआईक्यू छोड़ देता है) टिप्पणियों से: आपके द्वारा चुने गए फ़ॉन्ट्स के आधार पर, 5/एस और यू/वी भी दृष्टि से संदिग्ध हो सकते हैं; आवश्यक के रूप में प्रतिस्थापित करें। यह एक 32 प्रतीक (5 बिट) कोड है। एक 10 वर्ण कोड 50 बिट्स संख्या है। जेनरेट करने, क्रमबद्ध करने, कॉपी करने, तुलना करने के लिए उनको काफी छोटा होना चाहिए। अनुमानित होने की संभावना लगभग 0.63 ई -7
चूंकि कोड याद रखने में बहुत लंबा हैं, इसलिए उपयोगकर्ताओं को कॉपी करते समय उपयोगकर्ताओं को आराम बिंदु की आवश्यकता होगी। तो स्ट्रिंग को दो या तीन भागों में विभाजित करें और सुनिश्चित करें कि इनपुट फ़ील्ड इस ब्रेकडाउन से मेल खाता है।
उदा। AKG3L-45TEE => 5 के दो समूह, और यदि आप 5 वर्णों को याद नहीं कर सकते हैं, तो भी उस बिंदु को ढूंढना बहुत आसान है जहां आपने पढ़ना बंद कर दिया था।
कैसे उन्हें उत्पन्न करने के लिए:
यह काफी सरल है। उम्मीदवारों को उत्पन्न करने के लिए आपको विशेष रूप से परिष्कृत एल्गोरिदम की आवश्यकता नहीं है। आप प्रति कोड आवश्यक 10 यादृच्छिक संख्या उत्पन्न कर सकते हैं, प्रत्येक संख्या से 5 बिट्स लें (आम तौर पर मध्यम बिट्स सर्वश्रेष्ठ होते हैं, उदाहरण के लिए (रैंड()/64) मॉड्यूल 32)। इस मान का उपयोग अपने वर्णमाला में इंडेक्स के रूप में करें [0-31]। प्राथमिक स्ट्रिंग के रूप में इस स्ट्रिंग के साथ डेटाबेस तालिका बनाएं, और तालिका में 63 मिलियन प्रविष्टियां होने तक डालें। आप शायद इस तालिका में "जेनरेट" और "रिडीम ऑन" तिथियां जोड़ना चाहते हैं।
+1 भ्रमित मूल्यों को हटाने पर अच्छा बिंदु –
और 32 प्रतीक होने से कुछ चीजों को भी सरल बनाया जा सकता है –
अक्षर निबंध 'एस' और संख्या पांच '5' भी homomorphic हैं। – dwhall