Skip to content
All modules
FoundationModule 1 of 2760 minutes

Recognising encodings

Tell Base64 from hex from Base32 from binary on sight, peel layered encodings, and learn why an encoding is not encryption.

By the end you can

  • Identify Base64, Base64-URL, hex, Base32, binary, and Morse from their alphabets alone
  • Decode a multi-layer wrapper without guessing the order
  • Explain why encoding provides no confidentiality
  • Recognise when a decode produced bytes rather than text, and switch approach
  • Read percent-encoding and HTML entities as transport artefacts rather than as the puzzle

1. Read

2. Use the tools

In the order they come up while solving. Read what each one does, or go straight to the workspace tab that runs it.

3. Try one now

Generated in your browser and checked in your browser. No account, nothing to download, and a fresh one whenever you want another.

4. Practise on the real thing

Real picoCTF challenges that use these techniques, easiest first. 59 match in total - see the full index.

Common mistakes

The wrong turns this topic reliably produces. Written as the mistake rather than the rule, because the rule is easy to agree with and easy to walk straight past.

  • Running decoders in sequence until something looks like text. The alphabet identifies the format before anything is decoded, and being right first is the skill.
  • Treating a trailing = as proof of Base64. Base32 pads the same way, and Base64-URL in tokens and query strings usually has no padding at all.
  • Stopping at the first successful decode when the output is still high-entropy - that is normally another layer, or a cipher, not a dead end.
  • Pasting the mojibake from one decode straight into the next tool. If the output has no printable structure it is probably a file, and its first four bytes will say which one before another decode wastes the turn.
  • Counting percent-encoding or HTML entities as a layer of the puzzle. Both are added in transit by a browser or a template, so peeling them tells you how the string travelled rather than what the challenge hid.

Checkpoint

Given a three-layer encoded string, produce the plaintext and state each layer in order.

Teaching note

The instinct students arrive with is to try decoders at random until one works. The habit worth building instead is to look at the alphabet first and predict the format before decoding - being right is the point, not the answer.

Go deeper

The lessons above are written to get you through a challenge. These go after the subject instead. Each one opens our notes on that chapter - what it argues, what to take from it and where it stops - so this is somewhere to read now rather than a book to buy first. Nothing here is affiliate-linked or sold by us.

Every book the curriculum cites has a page in the library.