Voy a tener que estar de acuerdo con Rook, y decir lo que sea que estés haciendo, lo estás haciendo mal.
Para responder a su pregunta, la razón por la que tiene que convertir los datos binarios en una cadena codificada en base64 es que los datos binarios no se pueden codificar de manera confiable en un documento de solo texto (como HTML) sin realizar una transformación de conversión de texto. , el más popular de los cuales es la codificación base64. No voy a entrar en detalles, pero hay una serie de cosas que tienen que ver con los juegos de caracteres y esas cosas. Existen otras transformaciones (salida hexadecimal, por ejemplo) pero base64 es probablemente la forma más sencilla de hacerlo.
Dicho esto, probablemente no deberías hacer lo que sea que estés haciendo. Si necesita transmitir datos al cliente de forma segura, utilice SSL / TLS / HTTPS. De lo contrario, no lo estás haciendo de forma segura. Si necesita almacenar datos del lado del cliente que el cliente no leerá, simplemente no lo haga. Almacene los datos en su servidor y proporcione al cliente una clave de sesión que haga referencia a la ubicación de almacenamiento del servidor. De lo contrario, no lo harás de forma segura.
En serio.