§

Options

मोड
Hex ग्रुपिंग
0x प्रीफ़िक्स
केस
टेक्स्ट एन्कोडिंग
§

इनपुट

§

आउटपुट

भारतीय fintech इंजीनियर NPCI UPI के ISO 20022 pain.001 payment-message XML को XML-to-hex trace में देखते हैं — TransactionIdentification और CreditorAccount फ़ील्ड के ASCII bytes जाँचने के लिए यह Hex ↔ ASCII कन्वर्टर उपयोगी है। ONGC के Mumbai High SCADA में Modbus RTU serial-frame के raw bytes hex में आते हैं और function-code तथा register-address ASCII में decode होते हैं। TCS BaNCS core-banking migration में COBOL EBCDIC encoded account-name fields को ASCII में बदलने की प्रक्रिया में per-byte hex inspection अनिवार्य है — यह टूल वह काम सीधे ब्राउज़र में करता है।

Hex एन्कोडिंग कैसे काम करती है

पेज पर हर वर्ण एक या अधिक बाइट्स के रूप में संग्रहीत होता है। Hex एन्कोडिंग उन बाइट्स को बेस 16 में फिर से लिखती है, प्रति बाइट दो वर्ण, ताकि बाइट स्ट्रीम बिना विशेष टूल के पढ़ी जा सके।

  1. टेक्स्ट को बाइट्स में एन्कोड करें. UTF-8 मोड इनपुट को new TextEncoder().encode(text) से प्रोसेस करता है, जो बाइट वैल्यू की Uint8Array लौटाता है। Latin-1 मोड charCodeAt(0) & 0xFF के ज़रिए प्रत्येक कोड यूनिट के निचले आठ बिट लेता है, जो legacy ISO-8859-1 कोडेक करते हैं।
  2. प्रत्येक बाइट को दो hex अंकों में रेंडर करें. प्रत्येक बाइट byte.toString(16).padStart(2, "0") के ज़रिए दो hex अंकों में मैप होती है। केस टॉगल आउटपुट अक्षरों पर अपरकेस (A-F) या लोअरकेस (a-f) चुनता है।
  3. ग्रुपिंग और प्रीफ़िक्स लागू करें. ग्रुपिंग बाइट्स के बीच एक separator डालती है: एकल स्पेस, डैश, या हर चार बाइट पर एक स्पेस। 0x प्रीफ़िक्स पूरी स्ट्रिंग पर एक बार (None ग्रुपिंग) या प्रति बाइट (Space ग्रुपिंग) जोड़ा जा सकता है, जो C arrays और binary diff टूल की अपेक्षाओं से मेल खाता है।
  4. उल्टे क्रम में डिकोड करें. Hex → Text मोड इनपुट से सभी स्पेस, डैश और 0x प्रीफ़िक्स हटाता है, शेष वर्णों को /^[0-9a-fA-F]+$/ से मान्य करता है, विषम-लंबाई की स्ट्रिंग अस्वीकार करता है, और क्रमिक बाइट जोड़ों से Uint8Array फिर से बनाता है। UTF-8 मोड उस array को new TextDecoder("utf-8", { fatal: true }) से डिकोड करता है; Latin-1 मोड प्रत्येक बाइट को String.fromCharCode(b) से मैप करता है।
  5. तेज़ iteration के लिए लाइव मोड. लाइव मोड डिफ़ॉल्ट रूप से चालू है। प्रत्येक कीस्ट्रोक 150 ms debounced re-convert शेड्यूल करता है ताकि आप Convert बटन क्लिक किए बिना पेस्ट, संपादित और दूसरे पैन को अपडेट होते देख सकें।

Hex कन्वर्टर क्यों उपयोग करें

  • बाइनरी प्रोटोकॉल डीबग करना. Modbus, DNP3 और CoAP जैसे wire formats अपने हेडर को विशिष्ट बाइट ऑफ़सेट में पैक करते हैं। किसी कैप्चर किए फ्रेम को hex में पढ़ने से प्रत्येक फ़ील्ड एक नज़र में दिखती है, और उन्हीं बाइट्स को ASCII में पलटने से binary framing के साथ छिपा कोई plaintext payload सामने आता है।
  • Embedded firmware के साथ काम करना. JTAG और SWD probes मेमोरी सामग्री को hex में रिपोर्ट करते हैं। मेमोरी क्षेत्र को ASCII में अनुवाद करने से embedded strings (फ़ाइल पथ, त्रुटि संदेश, vendor signatures) मिलती हैं जो अक्सर बताती हैं कि आप firmware में कहाँ हैं।
  • Packet captures पढ़ना. Wireshark और tcpdump दोनों एक बाइट पैन देते हैं जो बायीं ओर hex और दायीं ओर ASCII प्रिंट करता है। यहाँ एक snippet कन्वर्ट करने से आप किसी bug report या chat log से hex blob कॉपी करके बाइट्स वास्तव में क्या कहती हैं पढ़ सकते हैं बिना उन्हें किसी capture टूल में फिर से import किए।
  • Byte-level diffs. दो binary files की तुलना अक्सर यह देखने तक आती है कि कौन सी बाइट्स बदली हैं। दोनों को consistent ग्रुपिंग के साथ hex में कन्वर्ट करने से diff टेक्स्ट एडिटर में align हो जाता है, जहाँ built-in diff टूल बदली हुई बाइट्स हाइलाइट कर सकता है।

सामान्य अनुप्रयोग

Hex ↔ ASCII कन्वर्शन reverse engineering, security और embedded कार्य में तब सामने आती है जब byte stream केवल text payload से अधिक होती है।

  • Reverse engineering: strings-resistant binary से hex dump लें, उन runs को चुनें जो printable ASCII के रूप में decode होते हैं, और उन strings का उपयोग disassembly में अपनी स्थिति anchor करने के लिए करें।
  • Network forensics: Wireshark से एकल packet payload को hex के रूप में कॉपी करें, यहाँ पेस्ट करें, और पूरे capture को export किए बिना application-layer text पढ़ें।
  • Crypto material handling: key, IV या HMAC tag अक्सर hex string के रूप में आता है। बाइट्स में वापस decode करने से length algorithm से मेल खाती है यह पुष्टि होती है (AES-128 के लिए 16 बाइट, AES-256 के लिए 32) इसे config में जोड़ने से पहले।

एक कार्यकारी उदाहरण

Text → Hex, UTF-8, lowercase, Space-every-byte ग्रुपिंग, prefix बंद चुनें। Hi टाइप करें: आउटपुट 48 69 दिखता है। प्रीफ़िक्स चालू करें और ग्रुपिंग None करें तो वही इनपुट 0x4869 रेंडर होता है। emoji 😀 इनपुट करें और UTF-8 मोड f0 9f 98 80 रेंडर करता है — एक code point के लिए चार बाइट, यही कारण है कि emoji प्रायः transmission size बढ़ाते हैं। Hex → Text पर जाएँ और 0x48-65-6C 6C 6F पेस्ट करें: parser प्रीफ़िक्स, डैश और स्पेस हटाकर Hello फिर से बनाता है।

FAQ

Hex एन्कोडिंग क्या है?

Hex एन्कोडिंग (या hexadecimal encoding) byte stream को बेस 16 में लिखती है, प्रति बाइट दो ASCII वर्ण। प्रत्येक hex अंक चार बिट कवर करता है, इसलिए दो अंक एक आठ-बिट बाइट कवर करते हैं। वर्णमाला 0-9 फिर A-F (या a-f) है; केस केवल presentation choice है और decoders दोनों स्वीकार करते हैं। Hex protocol specs, debugger output और crypto keys में raw bytes लिखने का मानक तरीका है क्योंकि यह binary से दोगुना compact है और text में raw bytes की unprintable-character समस्याओं से बचाता है।

मेरा emoji hex में 4 बाइट क्यों बनता है?

UTF-8 एक variable-length encoding है। ASCII वर्ण (U+0000 से U+007F) एक बाइट लेते हैं, Latin-1 supplements दो, अधिकांश अन्य BMP code points तीन, और U+FFFF से ऊपर के वर्ण — जिनमें अधिकांश emoji शामिल हैं — चार लेते हैं। smiling face 😀 U+1F600 है और F0 9F 98 80 में encode होता है। यदि आपको fixed-width byte view चाहिए तो Latin-1 पर switch करें — लेकिन Latin-1 केवल पहले 256 code points कवर करता है, इसलिए उस range से बाहर का कोई भी वर्ण round-trip नहीं कर सकता।

क्या यह Latin-1 / ISO-8859-1 support करता है?

हाँ। Text encoding option को Latin-1 (ISO-8859-1) पर switch करें। Encoding प्रत्येक JavaScript code unit के निचले आठ बिट लेती है (charCodeAt(0) & 0xFF), जो legacy single-byte mapping से मेल खाती है। Decoding प्रत्येक बाइट के लिए String.fromCharCode(byte) उपयोग करती है। Latin-1 तब उपयोग करें जब आप पुराने Windows-1252 या pre-Unicode सिस्टम के output के साथ काम कर रहे हों जहाँ प्रत्येक बाइट ठीक एक वर्ण का प्रतिनिधित्व करती है।

क्या कन्वर्शन मेरे ब्राउज़र में होती है?

हाँ। कन्वर्टर TextEncoder, TextDecoder और एक छोटा parser एकल static page के रूप में चलाता है। कोई upload नहीं, कोई API call नहीं, और आप जो पेस्ट करते हैं उस पर कोई analytics नहीं — केवल site भर में shared standard page-load metrics। आप यहाँ जो hex bytes देखते हैं वही हैं जो Node script या Lambda function उसी input पर produce करेगा।

Hex ↔ ASCII कन्वर्शन एक छोटा काम है जो binary protocols या embedded firmware पढ़ने वाला कोई भी व्यक्ति दिन में कई बार करता है। ब्राउज़र tab में करना, उन्हीं native encoders के साथ जो Node और V8 पहले से ship करते हैं, काम तेज़ रखता है और byte stream आपकी मशीन पर।