All operations

Hexadecimal

Two hex digits per byte. The default way to read raw data.

What it does

Hexadecimal writes each byte as exactly two digits from 0 to f. One byte, two characters, always. That fixed width is what makes it the standard way to display raw data: you can count bytes by eye, and every value from 0 to 255 gets the same amount of space.

What it is for

Reading anything that is not text. File signatures, hashes, keys, fingerprints, packet captures, memory dumps and protocol fields are all normally presented in hex.

It is also the format most tools expect when you need to hand them a specific byte value, such as an XOR key or an initialization vector.

Notes on input

Decoding here is forgiving about how bytes are separated. Spaces, colons, commas, underscores and 0x prefixes are all ignored, so you can paste hex straight out of a hex editor, a packet capture or a certificate dump without cleaning it up first.

It is strict about anything else. A character that is not a hex digit raises an error naming the offending character rather than being silently dropped, because quietly discarding input turns a typo into wrong output that looks fine.

Chain this with the PGP word list to turn a key fingerprint into something you can read aloud. Binary shows the same bytes bit by bit.