PHP-строки — последовательности байт, а не символов. strlen('Привет') = 12 (байты), не 6. Для корректной работы с Unicode — mb_ функции: mb_strlen(), mb_substr(), mb_strtolower().
Кодирует бинарные данные в строку из 64 символов (A-Z, a-z, 0-9, +, /). Увеличивает размер на ~33%. Не шифрование — только кодирование. Использование:
data:image/png;base64,iVBOR...base64_encode('Hello') // "SGVsbG8="
base64_decode('SGVsbG8=') // "Hello"