Welcome. This is a prerequisite lesson, not an attack lesson. A great deal of practical security work is, underneath, just moving the same data between different representations — reading a Base64 token, URL-encoding a payload so it survives a browser address bar, recognising a hash by its hexadecimal look. This lesson supplies that literacy so the later lessons land.
There is nothing to exploit here. This is pure data representation. The companion lesson encoding-encryption-hashing teaches you to tell these schemes apart by sight; this lesson teaches you what they are and how to convert between them.
In this lesson you will:
- See how all data reduces to bits and bytes, and why hexadecimal is the natural shorthand for bytes.
- Map between bytes and characters with ASCII and Unicode/UTF-8.
- Meet Base64 (binary as printable text — an encoding, not encryption) and URL/percent-encoding and HTML entities.
- Understand why an encoding (reversible, no key) is fundamentally different from encryption and hashing.
Estimated time: 12 minutes.
Bits and bytes
At the bottom, a computer stores everything as bits — each a single 0 or 1. Eight bits make a byte, and one byte can hold any value from 0 to 255 (2⁸ = 256 possibilities). That one fact — one byte = 8 bits = 256 values — anchors everything else. A character, a color, a fragment of a file: all of it is ultimately a sequence of bytes, and "converting data" almost always means re-expressing the same bytes in a more readable or transmittable form.
Hexadecimal: writing bytes cleanly
Binary is correct but painful to read, so we use hexadecimal (base 16): digits 0–9 then a–f, where a = 10, b = 11, up to f = 15. The reason hex is everywhere is a neat coincidence — one hex digit is 4 bits, so two hex digits represent exactly one byte. To read a two-digit hex byte, multiply the left digit by 16 and add the right: 0x48 = (4 × 16) + 8 = 72, which is the ASCII code for H. Every byte maps to a clean two-character pair (H is 0x48, i is 0x69). The 0x prefix just means "this is hex". That clean byte alignment is why hashes, memory addresses, and color codes (#ff8800) are all written in hex.
text: H i
hex: 48 69 (two hex digits per byte)
binary: 01001000 01101001When you are ready, send the Continue signal.