इस लेख में
Punycode क्या है?
Punycode RFC 3492 में परिभाषित एक एन्कोडिंग वाक्यविन्यास है जो Unicode वर्णों को Domain Name System (DNS) द्वारा उपयोग किए जाने वाले सीमित ASCII वर्ण-समूह में बदल देता है। यह अंतरराष्ट्रीयकृत डोमेन नामों (IDN) — यानी उच्चारण-चिह्न, चीनी वर्ण या अरबी लिपि जैसे गैर-ASCII वर्णों वाले डोमेन नामों — को केवल-ASCII वाले DNS ढाँचे के भीतर काम करने में सक्षम बनाता है।
Punycode-एन्कोडेड डोमेन के आगे xn-- (ACE उपसर्ग) लगा होता है जो यह संकेत देता है कि इसमें एन्कोडेड Unicode है। उदाहरण के लिए, डोमेन munchen.de, Punycode में xn--mnchen-3ya.de बन जाता है। एक Punycode कन्वर्टर मानव-पठनीय Unicode रूप और DNS-संगत ASCII रूप के बीच अनुवाद करता है।
Punycode एन्कोडिंग कैसे काम करती है
Punycode एक bootstring एल्गोरिदम का उपयोग करके Unicode कोड पॉइंट्स को मूल ASCII वर्णों (a-z, 0-9 और हाइफ़न) के अनुक्रम के रूप में दर्शाता है।
- Unicode पृथक्करण — एन्कोडर पहचानता है कि कौन-से वर्ण मूल ASCII हैं (जो बिना बदलाव के आगे भेजे जाते हैं) और कौन-से गैर-ASCII हैं (जिन्हें एन्कोड करने की ज़रूरत है)
- Delta एन्कोडिंग — गैर-ASCII वर्णों को उनकी स्थिति और कोड पॉइंट दर्शाने वाले संख्यात्मक डेल्टा के रूप में एन्कोड किया जाता है, जिन्हें base-36 अंकों में संपीड़ित किया जाता है
- ACE उपसर्ग — अंतिम एन्कोडेड स्ट्रिंग के आगे xn-- लगाया जाता है ताकि इसे Punycode के रूप में चिह्नित किया जा सके, जिससे DNS द्वारा उपयोग किया जाने वाला ACE (ASCII Compatible Encoding) रूप बनता है
निःशुल्क आज़माएँ — कोई साइनअप आवश्यक नहीं
Punycode बदलें →Punycode का उपयोग कब करें
Punycode रूपांतरण की ज़रूरत तब पड़ती है जब आप ऐसे सिस्टम में अंतरराष्ट्रीयकृत डोमेन नामों के साथ काम करते हैं जो केवल ASCII का समर्थन करते हैं।
- डोमेन पंजीकरण — रजिस्ट्रार IDN डोमेन पंजीकृत करने के लिए Punycode रूप की माँग करते हैं, और WHOIS लुकअप xn-- एन्कोडेड रूप का उपयोग करते हैं
- अंतरराष्ट्रीय डोमेन वाला ईमेल — user@munchen.de जैसे ईमेल पतों को SMTP डिलीवरी के लिए user@xn--mnchen-3ya.de में बदलना पड़ता है
- DNS कॉन्फ़िगरेशन — DNS ज़ोन फ़ाइलें और रिकॉर्ड किसी भी गैर-ASCII वर्ण वाले डोमेन लेबल के लिए Punycode रूप का उपयोग करते हैं
अक्सर पूछे जाने वाले प्रश्न
क्या Punycode और URL एन्कोडिंग एक ही हैं?
नहीं। URL एन्कोडिंग (percent-encoding) वर्णों को URL पथ और क्वेरी स्ट्रिंग में उपयोग के लिए %XX हेक्स अनुक्रमों में बदलती है। Punycode विशेष रूप से Unicode डोमेन लेबल को DNS के लिए ASCII में एन्कोड करता है। ये अलग-अलग समस्याएँ हल करते हैं — URL एन्कोडिंग URL के लिए है, Punycode डोमेन नामों के लिए है।
क्या Punycode का उपयोग फ़िशिंग के लिए किया जा सकता है?
हाँ, इसे IDN homograph हमला कहा जाता है। हमलावर ऐसे Unicode वर्णों वाले डोमेन पंजीकृत करते हैं जो लैटिन अक्षरों जैसे बिल्कुल दिखते हैं (उदाहरण के लिए, सिरिलिक 'a' बनाम लैटिन 'a')। आधुनिक ब्राउज़र संदिग्ध मिश्रित-लिपि डोमेन के लिए Punycode xn-- रूप प्रदर्शित करके इसे कम करते हैं।
क्या सभी ब्राउज़र अंतरराष्ट्रीयकृत डोमेन नामों का समर्थन करते हैं?
हाँ। सभी आधुनिक ब्राउज़र DNS रिज़ॉल्यूशन के लिए IDN डोमेन को स्वचालित रूप से Punycode में बदल देते हैं और एड्रेस बार में Unicode रूप दिखाते हैं। यह रूपांतरण उपयोगकर्ताओं के लिए पारदर्शी होता है। हालाँकि, ब्राउज़र फ़िशिंग सुरक्षा उपाय के रूप में लिपियाँ मिलाने वाले डोमेन के लिए Punycode रूप दिखा सकते हैं।