Base64 takes a stream of bytes and rewrites it using only 64 printable characters: A–Z, a–z, 0–9, +, and /. The = sign pads the end so the length is a multiple of four.
It's not encryption, anyone can decode it. The point is to make binary data safe to drop into systems that only handle text, like JSON payloads, URLs, email bodies, or HTTP headers.
Every 3 bytes of input become 4 Base64 characters, so the output is roughly 33% larger than the input. URL-safe Base64 swaps + and / for - and _.