The reasons for using hex encoding are basically the same as for Base64 encoding - it's used for when you want to send or store 8 bit data on a media that only accepts 6 or 7 bits. Hex encoding is performed by converting the 8 bit data to 2 hex characters. The hex characters are then stored as the two byte string representation of the characters. Often, some kind of separator is used to make the encoded data easier for human reading. With 8 bits converted to three characters and each character stored as 1-4 bytes you might use up to 12 bytes (or even more in some cases) for each byte of information. Don't use hex encoding if storage space is an issue. The encoding is quite easy to read though, so if human readability is an issue, then hex encoding is probably a better choice than base64 encoding.