Cryptology Academy · पाठ

ASCII, Unicode और पाठ निरूपण

समझें कि पाठ बाइट्स में कैसे बदलता है और क्रिप्टोग्राफ़िक संदर्भों में वर्ण एन्कोडिंग क्यों महत्वपूर्ण है।

पाठ 2, कुल 4 में से13 चरण

ASCII, Unicode और पाठ निरूपण, CoddyKit पर Cryptology Academy का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Cryptology Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Cryptology Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

7-बिट एन्कोडिंग के रूप में ASCII

ASCII (अमेरिकन स्टैंडर्ड कोड फ़ॉर इन्फ़ॉर्मेशन इंटरचेंज), जिसे 1963 में मानकीकृत किया गया था, 7 बिट में 128 वर्णों (0-127 मान) को एन्कोड करता है। इसमें अंग्रेज़ी वर्णमाला (बड़े और छोटे अक्षर), अंक, विराम चिह्न और नियंत्रण वर्ण शामिल हैं।

ASCII को अंग्रेज़ी और अमेरिकी दूरसंचार उपकरणों के लिए बनाया गया था। यह अपने निर्धारित उद्देश्य के लिए अच्छी तरह काम करता था, लेकिन अंग्रेज़ी के अलावा किसी भी भाषा के लिए मूल रूप से अपर्याप्त था।

ASCII में नियंत्रण वर्ण

ASCII के पहले 32 वर्ण (0-31) और DEL (127) नियंत्रण वर्ण हैं। इन्हें मूल रूप से टेलीटाइप मशीनों को नियंत्रित करने के लिए बनाया गया था: LF (पंक्ति फ़ीड, 10), CR (कैरिज रिटर्न, 13), BEL (घंटी, 7), TAB (9), ESC (27)।

क्रिप्टोग्राफ़िक संदर्भों में नियंत्रण वर्ण समस्याएँ पैदा कर सकते हैं। नल बाइट (0x00) C स्ट्रिंग को समय से पहले समाप्त कर देता है, और DEL या ESC वर्ण का अर्थ टर्मिनल अनुकरणकर्ता अलग तरह से समझ सकता है।

विस्तारित ASCII और उसकी समस्याएँ

अलग-अलग देशों ने 8वें बिट (128-255 मान) का उपयोग करके ASCII के अपने विस्तार बनाए, जिससे सैकड़ों असंगत एन्कोडिंग बनीं: पश्चिमी यूरोप के लिए ISO-8859-1 (लैटिन-1), रूसी भाषा के लिए KOI-8R और चीनी भाषा के लिए बिग5।

एक एन्कोडिंग में सहेजा गया दस्तावेज़ किसी दूसरी एन्कोडिंग में खोलने पर अर्थहीन अक्षरों जैसा दिखाई देता है। सार्वभौमिक मानक के अभाव ने 1980 और 1990 के दशकों में अंतरराष्ट्रीय सॉफ़्टवेयर विकास को बड़ी चुनौती बना दिया।

सार्वभौमिक वर्ण-समुच्चय के रूप में यूनिकोड

यूनिकोड को सभी मानव लेखन प्रणालियों को समेटने वाला एकल सार्वभौमिक वर्ण-समुच्चय उपलब्ध कराने के लिए बनाया गया था। वर्तमान में यह 161 लिपियों में 149,000 से अधिक वर्ण परिभाषित करता है, जिनमें ऐतिहासिक लिपियाँ और प्रतीक भी शामिल हैं।

यूनिकोड वर्ण की पहचान (एक कोड बिंदु, जैसे "A" के लिए U+0041) को एन्कोडिंग (उस कोड बिंदु को बाइट में संग्रहीत करने का तरीका) से अलग रखता है। यह अलगाव एक ही वर्ण को दर्शाने के लिए कई एन्कोडिंग प्रारूपों की अनुमति देता है।

UTF-8 की परिवर्ती-लंबाई एन्कोडिंग

UTF-8 यूनिकोड कोड बिंदुओं को 1 से 4 बाइट का उपयोग करके एन्कोड करता है। ASCII वर्ण (U+0000 से U+007F) ठीक 1 बाइट का उपयोग करते हैं, जो उनके ASCII मानों के समान होता है। इससे UTF-8 ASCII के साथ पश्च-संगत रहता है।

U+0080 से U+07FF तक के वर्ण 2 बाइट का उपयोग करते हैं। U+0800 से U+FFFF तक के वर्ण 3 बाइट का उपयोग करते हैं, जिनमें चीनी, जापानी और कोरियाई सहित अधिकांश सामान्य लिपियाँ आती हैं। U+10000 और उससे आगे के वर्ण 4 बाइट का उपयोग करते हैं।

UTF-16 और UTF-32

UTF-16 सबसे सामान्य वर्णों (बेसिक मल्टीलिंगुअल प्लेन, U+0000 से U+FFFF) के लिए 2 बाइट और U+FFFF से आगे के वर्णों के लिए 4 बाइट (सरोगेट युग्म) का उपयोग करता है। इसका आंतरिक उपयोग विंडोज़ और Java में होता है।

UTF-32 प्रत्येक कोड बिंदु के लिए ठीक 4 बाइट का उपयोग करता है। इससे इसकी चौड़ाई नियत रहती है और वर्ण-स्थिति से अनुक्रमण आसान होता है, लेकिन मुख्यतः ASCII वाले पाठ के लिए यह अधिक स्थान खर्च करता है। तेज़ यादृच्छिक अभिगम के लिए कुछ आंतरिक निरूपणों में इसका उपयोग किया जाता है।

बाइट क्रम चिह्न (BOM)

बाइट क्रम चिह्न (BOM) यूनिकोड वर्ण U+FEFF है, जिसे बाइट क्रम और एन्कोडिंग बताने के लिए किसी फ़ाइल की शुरुआत में रखा जाता है। UTF-16 में यह बिग-एंडियन (FE FF) और लिटल-एंडियन (FF FE) के बीच अंतर बताता है।

UTF-8 में BOM अनावश्यक है, क्योंकि UTF-8 में बाइट क्रम से जुड़ी कोई समस्या नहीं होती, फिर भी कुछ विंडोज़ सॉफ़्टवेयर इसे जोड़ देते हैं। क्रिप्टोग्राफ़िक अनुप्रयोगों में इससे समस्याएँ होती हैं, क्योंकि BOM को चिह्न के बजाय डेटा माना जाता है।

क्रिप्टोग्राफ़ी में एन्कोडिंग क्यों महत्वपूर्ण है

क्रिप्टोग्राफ़िक हैश फ़ंक्शन और एमएसी अमूर्त वर्णों पर नहीं, बल्कि बाइट अनुक्रमों पर काम करते हैं। एक ही स्ट्रिंग "café" UTF-8 (4 बाइट: 63 61 66 C3 A9) और लैटिन-1 (4 बाइट: 63 61 66 E9) में अलग-अलग एन्कोड होती है।

यदि दो प्रणालियाँ एक ही स्ट्रिंग का हैश बनाते समय अलग-अलग एन्कोडिंग का उपयोग करती हैं, तो उनके हैश अलग होंगे और प्रमाणीकरण विफल हो जाएगा। अंतर-संचालनीयता सुनिश्चित करने के लिए क्रिप्टो प्रोटोकॉल में एन्कोडिंग स्पष्ट रूप से बतानी चाहिए।

UTF-8 में इमोजी

इमोजी यूनिकोड के पूरक बहुभाषी तल में आने वाले वर्ण हैं। "मुस्कराता चेहरा" इमोजी (U+1F600) UTF-8 में 4 बाइट में एन्कोड होता है: F0 9F 98 80।

सुरक्षा संदर्भों में इमोजी और पूर्ण-चौड़ाई वाले यूनिकोड वर्णों का उपयोग समरूप-दिखने वाले नामों के हमलों में किया गया है। इनमें "xn--pple-43d.com" जैसा यूआरएल, जो "apple.com" जैसा दिखाई देता है, उपयोगकर्ताओं को किसी दुर्भावनापूर्ण साइट पर जाने के लिए धोखा देता है।

यूनिकोड सामान्यीकरण और क्रिप्टोग्राफ़ी

कुछ वर्णों को यूनिकोड के अनेक रूपों में दर्शाया जा सकता है। "तीव्र उच्चारण-चिह्न वाला e" U+00E9 (पूर्व-संयोजित) या U+0065 U+0301 (संयोजक उच्चारण-चिह्न के बाद आने वाला e, विघटित रूप) हो सकता है। ये देखने में एक जैसे हैं, लेकिन इनके बाइट निरूपण अलग होते हैं।

जो क्रिप्टोग्राफ़िक प्रणालियाँ हैश बनाने से पहले यूनिकोड का सामान्यीकरण नहीं करतीं, वे देखने में समान स्ट्रिंग के लिए अलग-अलग हैश बना सकती हैं। पाठ पर क्रिप्टोग्राफ़िक प्रक्रियाएँ लागू करने से पहले NFKC सामान्यीकरण की सामान्यतः अनुशंसा की जाती है।

क्रिप्टो के लिए सही एन्कोडिंग चुनना

क्रिप्टोग्राफ़िक प्रणालियाँ लागू करते समय एन्कोडिंग का चुनाव एक महत्वपूर्ण निर्णय होता है, जिसका दस्तावेज़ीकरण किया जाना चाहिए। हैश बनाने से पहले कूटशब्दों को UTF-8 में एन्कोड किया जाना चाहिए। प्रोटोकॉल के क्षेत्रों की एन्कोडिंग उनके विनिर्देश दस्तावेज़ों में बताई जानी चाहिए।

एन्कोडिंग के असंगत होने से होने वाली अंतर-संचालनीयता विफलताएँ क्रिप्टोग्राफ़िक प्रणालियों में त्रुटियों का सामान्य स्रोत हैं। यदि एक ही प्रोटोकॉल के दो कार्यान्वयन स्ट्रिंग को अलग-अलग ढंग से एन्कोड करते हैं, तो उनके प्रमाणीकरण परिणाम अलग हो सकते हैं।

UTF-8 एन्कोडिंग प्रश्नोत्तरी

UTF-8 एन्कोडिंग की अपनी समझ जाँचिए।

मुख्य बातें: पाठ एन्कोडिंग

ASCII 7 बिट में 128 वर्णों को समेटता है। यूनिकोड सभी मानव लिपियों के लिए एक सार्वभौमिक कोड-बिंदु क्षेत्र प्रदान करता है। UTF-8 यूनिकोड को 1 से 4 बाइट में एन्कोड करता है, जिसमें ASCII 1-बाइट का उपसमुच्चय है।

क्रिप्टोग्राफ़ी में एन्कोडिंग महत्वपूर्ण है, क्योंकि हैश फ़ंक्शन बाइट पर काम करते हैं। अलग-अलग एन्कोडिंग में वही पाठ अलग-अलग हैश उत्पन्न करता है। पाठ पर क्रिप्टोग्राफ़िक प्रक्रियाएँ करने से पहले यूनिकोड सामान्यीकरण आवश्यक है।

शुरुआत निःशुल्क

एआई शिक्षक के साथ Cryptology Academy सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
67
पाठ
261

अक्सर पूछे जाने वाले प्रश्न

क्या “ASCII, Unicode और पाठ निरूपण” पाठ निःशुल्क है?

हाँ—“ASCII, Unicode और पाठ निरूपण” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Cryptology Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Cryptology Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“ASCII, Unicode और पाठ निरूपण” में मैं क्या सीखूँगा?

समझें कि पाठ बाइट्स में कैसे बदलता है और क्रिप्टोग्राफ़िक संदर्भों में वर्ण एन्कोडिंग क्यों महत्वपूर्ण है। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Cryptology Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Cryptology Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Cryptology Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।

“ASCII, Unicode और पाठ निरूपण” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Cryptology Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Cryptology Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. Base64 एन्कोडिंग: यह कैसे काम करती है
  2. ASCII, Unicode और पाठ निरूपण
  3. क्रिप्टोग्राफ़िक आउटपुट में हेक्साडेसिमल
  4. एन्कोडिंग बनाम एन्क्रिप्शन बनाम हैशिंग
← Cryptology Academy पर वापस जाएँ