हेक्स एनकोडर और डिकोडर (Base16)

टेक्स्ट, फ़ाइलों या रॉ बाइट को हेक्साडेसिमल में बदलें और वापस पाएँ। अक्षरों का केस, विभाजक और 0x या \x प्रीफ़िक्स चुनें; डिकोडर आम हेक्स फ़ॉर्मैट को आपके लिए अपने आप साफ़ कर देता है।

पूरी तरह आपके ब्राउज़र में चलता है। कुछ भी अपलोड नहीं होता।

उपयोग कैसे करें

  1. टेक्स्ट को हेक्स में बदलने के लिए “एनकोड करें” चुनें, या हेक्स को वापस टेक्स्ट में बदलने के लिए “डिकोड करें”।
  2. इनपुट टाइप या पेस्ट करें, या किसी फ़ाइल के बाइट हेक्स में देखने के लिए उसे खोलें।
  3. विकल्प सेट करें: “बड़े अक्षर”, “विभाजक” (“कोई नहीं”, “स्पेस” या “कोलन”) और “प्रीफ़िक्स” (“कोई नहीं”, 0x या \x)।
  4. परिणाम कॉपी करें या उसे फ़ाइल के रूप में डाउनलोड करें।

हेक्साडेसिमल (Base16) क्या है?

हेक्साडेसिमल सोलह चिह्नों का उपयोग करता है: अंक 0 से 9 और अक्षर A से F। एक हेक्स अंक में चार बिट होते हैं, इसलिए हर बाइट ठीक दो अंकों में लिखा जाता है, 00 से FF तक। आउटपुट इनपुट से दोगुना होता है, यानी Base64 या Base32 से ज़्यादा, लेकिन बाइट की सीमाएँ साफ़ दिखती रहती हैं, इसीलिए डीबगर, हेक्स एडिटर और नेटवर्क टूल डेटा इसी तरह दिखाते हैं।

RFC 4648 इस एनकोडिंग को Base16 के रूप में मानकीकृत करता है, जिसमें बड़े अक्षरों वाली वर्णमाला होती है और पैडिंग नहीं होती। व्यवहार में छोटे अक्षर भी उतने ही आम हैं, और डिकोडर, यह वाला भी, दोनों स्वीकार करते हैं।

हेक्स का उपयोग कहाँ होता है

  • हैश और कुंजियाँ। SHA-256 डाइजेस्ट 32 बाइट का होता है, जिसे 64 हेक्स अंकों में लिखा जाता है। क्रिप्टोग्राफ़िक कुंजियाँ, UUID और चेकसम भी आमतौर पर हेक्स में ही दिखाए जाते हैं।
  • हार्डवेयर पते। MAC पते हेक्स में छह बाइट के होते हैं, जिन्हें सामान्यतः कोलन से अलग किया जाता है। कोलन विभाजक ठीक यही फ़ॉर्मैट बनाता है।
  • एस्केप सीक्वेंस। C, Python और JavaScript की स्ट्रिंग किसी एक बाइट के लिए \x और उसके बाद दो हेक्स अंक स्वीकार करती हैं, और \x प्रीफ़िक्स विकल्प ठीक यही लिखता है।
  • वेब फ़ॉर्मैट। #FF8800 जैसे CSS रंग हेक्स में तीन बाइट होते हैं, और URL परसेंट-एनकोडिंग बाइट को % और दो हेक्स अंकों के रूप में लिखती है।

हेक्स को टेक्स्ट में डिकोड करना

डिकोडर फ़ॉर्मैटिंग को लेकर लचीला है। यह बड़े और छोटे दोनों तरह के अंक स्वीकार करता है, स्पेस, लाइन ब्रेक, कॉमा, कोलन, सेमीकोलन और हाइफ़न को अनदेखा करता है, और 0x, \x, % और &#x प्रीफ़िक्स हटा देता है। xxd -p का आउटपुट, MAC पते, UUID, कॉमा से अलग की गई 0x सूचियाँ, %XX एस्केप और HTML हेक्स एंटिटी जैसे के तैसे पेस्ट किए जा सकते हैं। हर बाइट के लिए दो अंक चाहिए, इसलिए अंकों की विषम संख्या को त्रुटि के रूप में बताया जाता है। बाइट को चुनी गई टेक्स्ट एनकोडिंग में टेक्स्ट के रूप में दिखाया जाता है।

टेक्स्ट से गुज़रे बिना हेक्स को किसी दूसरी एनकोडिंग में बदलने के लिए हेक्स से Base64 या Base64 से हेक्स का उपयोग करें।

कोड में हेक्स

# Python
'Hi'.encode().hex()                 # '4869'
bytes.fromhex('4869').decode()      # 'Hi'

// Node.js
Buffer.from('Hi').toString('hex')             // '4869'
Buffer.from('4869', 'hex').toString('utf8')   // 'Hi'

# Shell
printf 'Hi' | xxd -p                # 4869

तकनीकी विवरण

वर्णमाला0-9 A-F
आउटपुट का आकारप्रति बाइट 2 अक्षर (200%)
पैडिंगकोई नहीं
मानकRFC 4648 खंड 8
केस-संवेदीनहीं

उदाहरण

इनपुट (UTF-8)आउटपुट
Hello, World!48656c6c6f2c20576f726c6421
Base64.is4261736536342e6973
你好e4bda0e5a5bd

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

हेक्स को टेक्स्ट में कैसे बदलें?

“डिकोड करें” पर जाएँ और हेक्स पेस्ट करें। स्पेस, कोलन और 0x या \x प्रीफ़िक्स अपने आप हट जाते हैं, और बाइट UTF-8 टेक्स्ट के रूप में दिखाए जाते हैं, जब तक कि आप कोई दूसरी टेक्स्ट एनकोडिंग न चुनें।

हेक्स बड़े अक्षरों में होना चाहिए या छोटे अक्षरों में?

दोनों एक ही बाइट दर्शाते हैं। RFC 4648 बड़े अक्षरों का उपयोग करता है, जबकि कई प्रोग्रामिंग भाषाएँ छोटे अक्षर प्रिंट करती हैं। अगर आपका लक्ष्य सिस्टम बड़े अक्षर चाहता है तो “बड़े अक्षर” चालू करें; डिकोडर दोनों में से कोई भी स्वीकार करता है।

हेक्स मूल डेटा से दोगुना लंबा क्यों होता है?
हर बाइट दो अक्षर बनता है, यानी 100% की बढ़ोतरी। Base64 केवल लगभग 33% जोड़ता है। अगर आकार मायने रखता है, तो बाइट को हेक्स से Base64 से बदलें।
क्या यह किसी संख्या को हेक्स में बदलने जैसा ही है?
पूरी तरह नहीं। यह टूल बाइट के एक क्रम को एनकोड करता है, जैसे किसी टेक्स्ट के बाइट। किसी एक पूर्णांक को बदलने के लिए, जैसे 255 को FF में, नंबर बेस कन्वर्टर का उपयोग करें।