Hex is how bytes are shown when they cannot be shown as text. Every hash, every key fingerprint, every packet capture and every memory dump uses it, because two hex characters map to exactly one byte with no ambiguity.
Input this tool accepts
Hex arrives in several conventions and all of them are handled:
48656c6c6f— packed, as most hash tools produce48 65 6c 6c 6f— spaced, as hex editors show48:65:6c:6c:6f— colon-separated, as certificate fingerprints and MAC addresses use48-65-6C-6C-6F— dashed, uppercase, as Windows tools produce0x48656c6c6f— with the C-style prefix
Separators and the prefix are stripped. Case is irrelevant.
Odd-length input means truncation
Every byte is exactly two hex characters, so a valid hex string always has an even length. An odd length means a character was lost — usually a copy that clipped one character, or a value that overflowed a fixed-width field.
This tool reports it as an error rather than guessing, because guessing which end lost a character produces the wrong bytes silently.
Reading the hex dump
The dump shows an offset, sixteen bytes, and an ASCII column with non-printable bytes as dots. It is the fastest way to answer "what is actually in this value":
- Bytes in the
20–7erange are printable ASCII, so the ASCII column reads as text. - A run of high bytes means UTF-8 multi-byte characters or genuinely binary data.
00bytes mean binary, or a string that was null-padded to a fixed width.- A trailing
0aor0d 0ais a newline that came along with the copy.
Where hex is the right representation
Hashes and fingerprints. SHA-256 as 64 hex characters is the universal convention, and the fixed length makes truncation obvious.
Cryptographic keys. An AES-256 key as 64 hex characters is unambiguous. Base64 is denser but its padding and variant differences cause more mistakes.
Binary protocols. When debugging what actually went over the wire, hex is the only honest view.
Frequently asked questions
Why does my hex decode to garbage?
Most likely it is not text — a hash, a key or a compressed blob decodes to bytes with no textual meaning. That is expected. If you were expecting text, check whether the value is actually Base64, which the Base64 decoder will tell you.
What is the 0x prefix for?
A C-language convention marking a numeric literal as hexadecimal. It is not part of the value. This tool strips it.
Uppercase or lowercase hex?
Both represent identical bytes. Lowercase is the convention for hashes and most Unix tooling; uppercase appears in Windows tools and some certificate displays. Only string comparison cares, which is why the hash comparator can ignore case.
Can I convert hex to Base64 directly?
Yes — use the Base64 encoder with hex as the input format. Both tools use the same codec, so the byte handling is identical.