¿Por qué tenemos la codificación Base64? Soy un principiante y realmente no entiendo por qué ofuscarías los bytes en otra cosa (a menos que sea encriptación). En uno de los libros que leí, la codificación Base64 es útil cuando la transmisión binaria no es posible. P.ej. Cuando publicamos un formulario, está codificado. Pero, ¿por qué convertimos bytes en letras? ¿No podríamos simplemente convertir bytes en formato de cadena con un espacio entre ellos? Por ejemplo, 00000001 00000004
? ¿O simplemente 0000000100000004
sin espacio porque los bytes siempre vienen en pares de 8?
82
Respuestas:
Base64 es una forma de codificar datos binarios en un conjunto de caracteres ASCII conocido por casi todos los sistemas informáticos, con el fin de transmitir los datos sin pérdida o modificación del contenido en sí. Por ejemplo, los sistemas de correo no pueden manejar datos binarios porque esperan datos ASCII (textuales). Entonces, si desea transferir una imagen u otro archivo, se corromperá debido a la forma en que maneja los datos.
Nota: la codificación base64 NO es una forma de cifrar ni una forma de compactar datos. De hecho, un dato codificado en base64 es 1.333… veces más grande que el dato original. Es solo una forma de asegurarse de que no se pierdan ni modifiquen datos durante la transferencia.
fuente
Base64 es un mecanismo que permite representar y transferir datos binarios a través de medios que solo permiten caracteres imprimibles. Es la forma más popular de "Codificación base", siendo las otras conocidas en uso Base16 y Base32.
La necesidad de Base64 surgió de la necesidad de adjuntar contenido binario a correos electrónicos como imágenes, videos o contenido binario arbitrario. Dado que SMTP [RFC 5321] solo permitía caracteres US-ASCII de 7 bits dentro de los mensajes, era necesario representar estos flujos de octetos binarios utilizando los caracteres ASCII de siete bits ...
Espero que esto responda la pregunta
fuente
Base64 es una forma más o menos compacta de transmitir (codificar, de hecho, pero con el objetivo de transmitir) cualquier tipo de datos binarios.
Ver http://en.wikipedia.org/wiki/Base64
"La regla general es elegir un conjunto de 64 caracteres que sea parte de un subconjunto común a la mayoría de las codificaciones y también imprimible".
Ese es un propósito muy general y la necesidad común es no desperdiciar más espacio del necesario.
Históricamente, se basa en el hecho de que existe un subconjunto común de (casi) todas las codificaciones utilizadas para almacenar caracteres en bytes y que muchos de los 2 ^ 8 bytes posibles corren el riesgo de pérdida o transformaciones durante la transferencia de datos simple (por ejemplo, una copia) pegar-enviar-enviar-correo-recibir-copiar-pegar secuencia).
(Por favor, redirija el voto positivo al comentario de Brian, solo lo hago más completo y, con suerte, más claro).
fuente