§

Options

பயன்முறை
Hex குழுவாக்கம்
0x முன்னொட்டு
எழுத்து வடிவம்
உரை குறியாக்கம்
§

உள்ளீடு

§

வெளியீடு

தமிழக embedded firmware engineers மற்றும் security analysts JTAG dumps, packet captures மற்றும் binary protocol headers-ஐ inspect செய்யும்போது hex ↔ ASCII மாற்றம் அன்றாட தேவையாகிறது. Wireshark-ல் packet bytes படிக்க, firmware-ல் embedded strings கண்டுபிடிக்க அல்லது API debug செய்யும்போது hex strings-ஐ readable text-ஆக மாற்றுவது வழக்கமான workflow. இந்த கருவி browser-ல் இயங்குவதால் sensitive data server-க்கு செல்வதில்லை.

Hex encoding எவ்வாறு வேலை செய்கிறது

பக்கத்தில் ஒவ்வொரு எழுத்தும் ஒன்று அல்லது அதிகமான bytes ஆக சேமிக்கப்படுகிறது. Hex encoding அந்த bytes-ஐ base 16-ல் மீண்டும் எழுதுகிறது, ஒரு byte-க்கு இரண்டு எழுத்துக்கள், இதனால் byte stream சிறப்பு tools இல்லாமல் படிக்கக்கூடியதாகிறது.

  1. Text-ஐ bytes-க்கு encode செய்யுங்கள். UTF-8 mode உள்ளீட்டை new TextEncoder().encode(text) மூலம் இயக்குகிறது, இது byte values-ன் ஒரு Uint8Array return செய்கிறது. Latin-1 mode legacy ISO-8859-1 codecs செய்யும் conversion ஆகிய charCodeAt(0) & 0xFF மூலம் ஒவ்வொரு code unit-ன் low eight bits எடுக்கிறது.
  2. ஒவ்வொரு byte-ஐயும் இரண்டு hex digits ஆக render செய்யுங்கள். ஒவ்வொரு byte-உம் byte.toString(16).padStart(2, "0") மூலம் இரண்டு hex digits-க்கு map ஆகுகிறது. case toggle வெளியீட்டு letters-ல் uppercase (A-F) அல்லது lowercase (a-f) தேர்ந்தெடுக்கிறது.
  3. Grouping மற்றும் prefix பயன்படுத்துங்கள். Grouping bytes இடையே ஒரு separator செருகுகிறது: ஒரு single space, ஒரு dash அல்லது ஒவ்வொரு நான்கு bytes-க்கும் ஒரு space. 0x prefix முழு string-க்கு ஒரு முறை (None grouping) அல்லது ஒவ்வொரு byte-க்கும் (Space grouping) prepend செய்யலாம், C arrays மற்றும் binary diff tools expect செய்யும் conventions match ஆக.
  4. தலைகீழாக decode செய்யுங்கள். Hex → Text mode உள்ளீட்டிலிருந்து ஒவ்வொரு space, dash மற்றும் 0x prefix-ஐயும் நீக்கி, மீதமுள்ள எழுத்துக்களை /^[0-9a-fA-F]+$/-க்கு எதிராக validate செய்கிறது, odd-length strings-ஐ reject செய்கிறது, மற்றும் successive byte pairs-லிருந்து ஒரு Uint8Array மீண்டும் உருவாக்குகிறது. UTF-8 mode அந்த array-ஐ new TextDecoder("utf-8", { fatal: true }) மூலம் decode செய்கிறது; Latin-1 mode ஒவ்வொரு byte-ஐயும் String.fromCharCode(b)-க்கு map செய்கிறது.
  5. வேகமான iteration-க்கு Live mode. Live mode default-ஆக on ஆக உள்ளது. ஒவ்வொரு keystroke-உம் 150 ms debounced re-convert schedule செய்கிறது, இதனால் Convert பொத்தானை கிளிக் செய்யாமல் ஒட்டலாம், திருத்தலாம் மற்றும் மறு pane update ஆவதை பார்க்கலாம்.

ஒரு hex converter ஏன் பயன்படுத்த வேண்டும்

  • Binary protocols debugging. Modbus, DNP3 மற்றும் CoAP போன்ற wire formats specific byte offsets-ல் headers pack செய்கின்றன. ஒரு captured frame-ஐ hex ஆக படிப்பது ஒவ்வொரு field-ஐயும் ஒரே பார்வையில் காட்டுகிறது, மற்றும் அதே bytes-ஐ ASCII-க்கு திரும்ப மாற்றுவது binary framing-ஓடு உள்ள எந்த plaintext payload-ஐயும் வெளிப்படுத்துகிறது.
  • Embedded firmware-உடன் வேலை செய்யுங்கள். JTAG மற்றும் SWD probes memory contents-ஐ hex ஆக report செய்கின்றன. Memory-ன் ஒரு பகுதியை ASCII-க்கு மொழிபெயர்ப்பது embedded strings (file paths, error messages, vendor signatures) கண்டுபிடிக்கிறது, இவை பெரும்பாலும் firmware-ல் நீங்கள் எங்கே பார்க்கிறீர்கள் என்பதை குறிப்பிடுகின்றன.
  • Packet captures படிக்கவும். Wireshark மற்றும் tcpdump இரண்டும் இடது பக்கத்தில் hex ஆகவும் வலது பக்கத்தில் ASCII ஆகவும் ஒவ்வொரு packet-ஐயும் print செய்யும் byte pane ship செய்கின்றன. இங்கே ஒரு snippet மாற்றுவதால் capture tool-ல் மீண்டும் import செய்யாமல் bug report அல்லது chat log-லிருந்து hex blob copy செய்து bytes உண்மையில் என்ன சொல்கின்றன என்று படிக்கலாம்.
  • Byte-நிலை வேறுபாடுகள். இரண்டு binary files-ஐ compare செய்வது பெரும்பாலும் எந்த bytes மாறியது என்று கண்டுபிடிப்பதாக வருகிறது. consistent grouping-உடன் இரண்டு பக்கங்களையும் hex-க்கு மாற்றுவது diff-ஐ text editor-ல் line up செய்கிறது, அங்கே built-in diff tool மாறிய bytes-ஐ highlight செய்யலாம்.

பொதுவான பயன்பாடுகள்

Hex ↔ ASCII மாற்றம் reverse engineering, security மற்றும் embedded வேலை முழுவதும் காட்சியளிக்கிறது, ஒரு byte stream just a text payload-ஐ விட அதிகமாக இருக்கும்போது எல்லாம்.

  • Reverse engineering: strings-resistant binary-லிருந்து ஒரு hex dump எடுத்து, printable ASCII ஆக decode ஆகும் runs கண்டுபிடித்து, disassembly-ல் நீங்கள் எங்கே இருக்கிறீர்கள் என்று anchor செய்ய அந்த strings பயன்படுத்துங்கள்.
  • Network forensics: Wireshark-லிருந்து ஒரு single packet payload-ஐ hex ஆக copy செய்து, இங்கே ஒட்டி, முழு capture export செய்யாமல் application-layer text படிக்கவும்.
  • Crypto material handling: ஒரு key, IV அல்லது HMAC tag பெரும்பாலும் hex string ஆக ship ஆகிறது. Bytes-க்கு திரும்ப decode செய்வது config-ல் wire செய்வதற்கு முன்பு length algorithm-உடன் match ஆகிறதா என்று confirm செய்கிறது (AES-128-க்கு 16 bytes, AES-256-க்கு 32).

ஒரு worked example

Text → Hex, UTF-8, lowercase, Space-every-byte grouping, prefix off தேர்ந்தெடுங்கள். Hi தட்டச்சு செய்யுங்கள்: வெளியீடு 48 69 என்று படிக்கப்படும். prefix on செய்து grouping-ஐ None-க்கு மாற்றுங்கள், அதே உள்ளீடு 0x4869 ஆக render ஆகும். 😀 emoji-ஐ உள்ளீடாக ஒட்டுங்கள், UTF-8 mode f0 9f 98 80 render செய்கிறது — ஒரு code point-க்கு நான்கு bytes, இதனால் emoji பெரும்பாலும் transmission size-ஐ அதிகரிக்கிறது. Hex → Text-க்கு மாற்றி 0x48-65-6C 6C 6F ஒட்டுங்கள்: parser prefix, dashes மற்றும் spaces நீக்கி Hello மீண்டும் உருவாக்கும்.

FAQ

Hex encoding என்றால் என்ன?

Hex encoding (அல்லது hexadecimal encoding) ஒரு byte stream-ஐ base 16-ல் எழுதுகிறது, ஒரு byte-க்கு இரண்டு ASCII எழுத்துக்கள். ஒவ்வொரு hex digit-உம் நான்கு bits cover செய்கிறது, எனவே இரண்டு digits ஒரு eight-bit byte cover செய்கின்றன. alphabet 0-9 பின் A-F (அல்லது a-f) இயங்குகிறது; case தூய ஒரு presentation தேர்வு மற்றும் decoders இரண்டையும் ஏற்கின்றன. Hex protocol specs, debugger வெளியீடு மற்றும் crypto keys-ல் raw bytes எழுத standard வழி, ஏனெனில் இது binary-ஐ விட இரண்டு மடங்கு compact மற்றும் text-ல் raw bytes-ன் unprintable-character problems-ஐ தவிர்க்கிறது.

என் emoji hex-ல் ஏன் 4 bytes ஆகிறது?

UTF-8 ஒரு variable-length encoding. ASCII characters (U+0000 முதல் U+007F) ஒரு byte எடுக்கின்றன, Latin-1 supplements இரண்டு எடுக்கின்றன, பெரும்பாலான மற்ற BMP code points மூன்று எடுக்கின்றன, மற்றும் U+FFFF-க்கு மேல் உள்ள characters — பெரும்பாலான emoji உட்பட — நான்கு எடுக்கின்றன. smiling face 😀 U+1F600 மற்றும் F0 9F 98 80-ஆக encode ஆகுகிறது. நீங்கள் fixed-width byte view தேவைப்பட்டால், Latin-1-க்கு மாறுங்கள் — ஆனால் Latin-1 முதல் 256 code points மட்டுமே cover செய்கிறது, எனவே அந்த range வெளியே உள்ள எந்த எழுத்தும் round-trip ஆக முடியாது.

இது Latin-1 / ISO-8859-1 ஆதரிக்குமா?

ஆம். Text encoding option-ஐ Latin-1 (ISO-8859-1)-க்கு மாற்றுங்கள். Encoding ஒவ்வொரு JavaScript code unit-ன் low eight bits எடுக்கிறது (charCodeAt(0) & 0xFF), இது legacy single-byte mapping match ஆகுகிறது. Decoding ஒவ்வொரு byte-க்கும் String.fromCharCode(byte) பயன்படுத்துகிறது. ஒவ்வொரு byte-உம் சரியாக ஒரு எழுத்தை represent செய்யும் பழைய Windows-1252 அல்லது pre-Unicode systems-லிருந்து வெளியீட்டுடன் வேலை செய்யும்போது Latin-1 பயன்படுத்துங்கள்.

மாற்றம் என் உலாவியில் நடைபெறுகிறதா?

ஆம். converter TextEncoder, TextDecoder மற்றும் ஒரு சிறிய parser-ஐ single static page ஆக இயக்குகிறது. upload இல்லை, API call இல்லை, நீங்கள் ஒட்டுவதில் analytics இல்லை — site முழுவதும் share செய்யப்படும் standard page-load metrics மட்டுமே. இங்கே நீங்கள் பார்க்கும் அதே hex bytes ஒரு Node script அல்லது Lambda function அதே உள்ளீட்டில் produce செய்வதாகும்.

Hex ↔ ASCII மாற்றம் binary protocols அல்லது embedded firmware படிக்கும் யாரும் ஒரு நாளில் பல முறை செய்யும் சிறிய வேலை. Browser tab-ல் செய்வது, Node மற்றும் V8 ஏற்கனவே ship செய்யும் அதே native encoders-உடன், வேலையை வேகமாகவும் byte stream உங்கள் machine-லும் வைக்கிறது.