¿Por qué tenemos codificación Base64? Soy un principiante y realmente no entiendo por qué ofuscaría los bytes en otra cosa (a menos que sea una 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, se codifica. ¿Pero por qué convertimos bytes en letras? ¿No podríamos simplemente convertir bytes en formato de cadena con un espacio intermedio? Por ejemplo, 00000001 00000004
? O simplemente 0000000100000004
sin ningún espacio porque los bytes siempre vienen en par de 8?¿Cuál es el verdadero propósito de la codificación Base64?
Respuesta
Base64 es una forma de codificar datos binarios en un conjunto de caracteres ASCII conocido en casi todos los sistemas informáticos, con el fin de transmitir los datos sin pérdida o modificación de los contenidos. Por ejemplo, los sistemas de correo no pueden tratar con 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 encriptar, ni una forma de compactar datos. De hecho, una pieza de datos codificada en base64 es 1.333 ... veces más grande que la pieza de datos original. Es solo una forma de asegurarse de que no se pierdan ni modifiquen datos durante la transferencia.
Los datos codificados de Base64 son exactamente 1,333 (3) veces mayores que los datos originales + 0-3 caracteres adicionales adicionales según la longitud del módulo de datos de entrada 4. Se debe a que cada carácter codificado en base64 almacena información de 6 bits (64 caracteres diferentes) – too
tanto antes como después de los datos aún son binarios. entonces por qué los datos se pierden –
Base64 es una forma más o menos compacta de transmisión (codificación, 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 es a la vez parte de un subconjunto común a la mayoría de las codificaciones, y también se puede imprimir."
Ese es un propósito muy general y la necesidad común es no perder más espacio de lo 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 perder o transformaciones durante la transferencia de datos simple (para ejemplo una secuencia copy-paste-emailsend-emailreceive-copy-paste).
(reenvíe la respuesta al comentario de Brian, lo hago más completo y, con suerte, más claro).
Nah, es solo temprano y no tuve ganas de dar una respuesta completa. Esto es bueno. –
Ver, puedo utilizar Atrás el uso de Base64 para copiar/pegar datos binarios como texto sin tener que preocuparme por caracteres que no sean de impresión (como una URL de datos para contener, por ejemplo, datos de imagen, en una cadena). Lo que no entiendo es cuando la gente lo usa para codificar texto sin formato. Al igual que la forma * Hyper Light Drifter * almacena sus datos guardados en una cadena JSON y luego los codifica en Base64.Es un paso adicional innecesario en el guardado/carga que no hace nada útil, y requiere más tiempo y espacio. Si no podían ser jodidos para escribir su propio sistema de salvar, ¿cuánto más en el juego se pasó por alto? –
Base64 es un mecanismo que permite representar y transferir datos binarios a través de medios que permiten solo caracteres imprimibles. Es la forma más popular de "Codificación de base", los otros conocidos en uso son 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. Desde SMTP [RFC 5321] sólo se permite caracteres US-ASCII de 7 bits dentro de los mensajes, había una necesidad de representar estas corrientes de octetos binarios usando los caracteres ASCII de siete bits ...
Hope esto responde a la pregunta
- 1. ¿Cuál es la ventaja de utilizar la codificación Base64?
- 2. ¿Cuál es el propósito de la codificación hexadecimal para datos binarios?
- 3. ¿Cuál es el propósito de git-mv?
- 4. ¿Cuál es el propósito de 'var'?
- 5. ¿Cuál es el verdadero propósito de la etiqueta contentDescription de Android?
- 6. Imagen de codificación Base64
- 7. ¿Cuál es el propósito de la tilde en esta situación?
- 8. MD5 codificación Hash y Base64
- 9. Detectar codificación base64
- 10. ¿Es esta cadena Base64? ¿Cómo puedo saber cuál es la codificación utilizada?
- 11. Codificación Base64 en Java/Groovy
- 12. codificación base64 en MySQL
- 13. ¿Cuál es el propósito de `qt_noop`
- 14. ¿Cuál es el propósito de 'Class.forName ("MY_JDBC_DRIVER")'?
- 15. ¿Cuál es el propósito de precompiledApp.config?
- 16. ¿Cuál es el propósito de layout.xml?
- 17. ¿Cuál es el propósito de requestWindowFeature()?
- 18. ¿Cuál es el propósito de Mage_Core_Block_Template_Facade
- 19. ¿Cuál es el propósito de config.assets.precompile?
- 20. ¿Cuál es el propósito de String.IsInterned?
- 21. ¿Cuál es el propósito de IntentSender?
- 22. ¿Cuál es el propósito de utilizar NSOrderedSame?
- 23. ¿Cuál es el propósito de Membership.ValidateUser()
- 24. ¿Cuál es el propósito de Ext.require
- 25. WPF: ¿Cuál es el propósito de App.xaml?
- 26. ¿Cuál es el propósito de Anorm's Pk?
- 27. ¿Cuál es el propósito de Active Records?
- 28. ¿Cuál es el propósito de Rake?
- 29. ¿Cuál es el propósito de 'n = n'?
- 30. ¿Cuál es el propósito de Function.const?
Porque acaba de convertir 1 byte en 8 en lugar de 3 en 4 como lo hace con base64 (si la memoria me sirve correctamente). El ancho de banda es finito. –
Estás confundiendo bits (con 8 bits que haces un byte) y bytes, que pueden venir en cualquier tipo de agrupación. –