En el YUI 3 Galería: Base64 y codificación Y64
06 de julio 2010 a las 9:39 am por Nicholas C. Zakas | En Desarrollo | 5 comentariosNicholas C. Zakas ( @ slicknet en Twitter) es el ingeniero principal en la interfaz de Yahoo! página de inicio , un YUI colaborador, y autor de Profesional JavaScript para desarrolladores Web y la recién publicada, de alto rendimiento de JavaScript .
Base64 codificación fue diseñado originalmente para permitir que los datos sin pérdidas que pasan entre 8-bit y sistemas de 7-bits. El principal ejemplo de su uso es en el correo electrónico, que tradicionalmente utilizan 7-bit de los sistemas para transferir el correo electrónico, mientras que aquellos de nosotros en su casa en nuestras computadoras estaban usando sistemas de 8-bits. Esto llegó a ser especialmente importante con archivos adjuntos de correo electrónico no son de texto, que se codifica en MIME Base64 y enviado junto con el destino.
Más recientemente, la codificación de base 64 ha ganado popularidad por su uso en URIs de datos. Para aquellos que desconocen, URIs de datos son una forma de incrustar archivos dentro de HTML y CSS. Uno de los formatos de datos compatibles URI es base64.
Base64 todavía se utiliza con frecuencia en la programación, sobre todo para la ofuscación, sino también para el transporte de datos seguro. Mientras que algunos navegadores tienen nativa codificación base64 y decodificación, esta funcionalidad no está definido en ninguna. Estándar ni suele estar disponible en todos los navegadores El YUI 3 Galería módulo de base 64 proporciona una implementación común de codificación base64 que se puede utilizar en todos los navegadores de categoría A. Para utilizar el módulo de base 64, incluyen lo siguiente en su página:
<script src="http://yui.yahooapis.com/3.1.0/build/yui/yui-min.js"></script> <script> YUI({ gallery: 'gallery-2010.06.16-19-51' }).use('gallery-base64', function(Y) { //your code here }); </script> El módulo expone una Base64 Base64 objeto con dos métodos: encode() y decode() . Los métodos se utilizan como sigue:
var decodedText = Y.Base64.decode(encodedText); var encodedText2 = Y.Base64.encode(rawText); Junto con el módulo de base 64, que también escribió un módulo de Y64 . Y64 es una variante de base 64 utilizado en Yahoo! cuando base64 información debe ser transmitida como parte de una solicitud GET. Base64 regular tiene tres personajes que no son de URL segura: más (+), barra (/), y de igual (=). (.) Y64 codificación reemplaza estos con el punto, guión bajo (_) y guión (-), respectivamente. Esto permite Y64 cadenas codificadas para ser colocado en las direcciones URL sin preocuparse de escape en las URL de los personajes.
El módulo de Y64 requiere el módulo de base 64, que automáticamente se retiró en cuando se incluye el siguiente código:
YUI({ gallery: 'gallery-2010.06.16-19-51' }).use('gallery-y64', function(Y) { //your code here }); El módulo Y64 expone un Y64 objeto con encode() y decode() métodos, por lo que el uso es el mismo que con la Base64 objeto:
var decodedText = Y.Y64.decode(encodedText); var encodedText2 = Y.Y64.encode(rawText); Si usted está pensando en pasar los datos codificados en base64 en una cadena de dirección URL, es posible que desee considerar la posibilidad Y64 como una alternativa.
Por favor, tenga en cuenta que base64 y Y64 no son algoritmos de cifrado. Los algoritmos de cifrado están diseñados para proteger los datos de miradas indiscretas. Base64 y Y64 son encoding algoritmos diseñados para transmitir datos sin el riesgo de corrupción de datos - el tipo de corrupción que se produce cuando los datos se transfieren de un sistema a otro y puede ser codificado y decodificado en muchos formatos diferentes antes de llegar al destino final.
Un buen ejemplo de esto es el enlace para compartir la funcionalidad. Supongamos que usted está compartiendo un enlace al pasar a un punto de entrada, tales como http://www.example.com?share=<url> . La url debe ser una URL codificada para la transmisión segura, pero eso sí URL también puede contener datos de codificación URL. Y lo creas o no, a veces los navegadores pueden mal codificado URL antes de la transmisión (es raro, pero no imposible). Para un mayor nivel de confianza de que los datos llegarán en buena forma, puede utilizar Y64 codificación:
var destination = "http://www.example.com?share=" + Y.Y64.encode(url); El destino entonces descifrar el valor de dirección URL. Debido a que este valor no se requiere codificación URL, las posibilidades de que los datos resulten dañados durante la transmisión se reducen.
No todo el mundo tendrá que utilizar la codificación base64 o Y64 en sus aplicaciones web, pero estos pueden ser herramientas muy poderosas para mantener en su bolsillo trasero.
Para leer más:
Compartir y ampliar: Marcar página con del.icio.us | Digg It! | reddit!
5 comentarios
Disculpa, los comentarios están cerrados en este momento.

Copyright © 2006-2012 Yahoo! Inc. Todos los derechos reservados. Política de privacidad - Condiciones del servicio
Desarrollado por WordPress en Yahoo! Web Hosting .

Usted está utilizando un interruptor por carácter ... que es bastante horrible. Yo escribí y publiqué un ejemplo hace unos años:
Base64 simples de codificación / decodificación - Javascript
Tenga en cuenta que con un pequeño ajuste a la función constructora anónima, que podría generar una igualmente eficaces Y64 funciones.
No dude en volver a usar lo que quieras.
Comentario por Preston L. Bannister - 06 de julio 2010 #
El artículo menciona que se puede usar un URI de datos para incluir archivos dentro del documento HTML. ¿Este soporte de módulos que la funcionalidad (a través de un grado navegadores)?
Comentario por Sause - 06 de julio 2010 #
Para aclarar, ¿está usted usando las mismas convenciones que en Y64, como base 64 de la URL ? Se traduce "+" => "-" pero este mensaje sugiere que se está traduciendo Y64 "+" => ".". Además, para Base64 URL omite "=" para el relleno.
Comentario por Michael Sheakoski - 06 de julio 2010 #
@ Sause - este módulo es para la codificación base64 solamente. Funcionalidad de datos URI es algo que viene integrado en el navegador (o no!), Por lo que este módulo no puede hacer nada para ayudar a los navegadores de apoyo que no las soportan de forma nativa.
Comentario por Nicolás Zakas C. - 07 de julio 2010 #
@ Michael - Y64 no es lo mismo como Base64 para el URL. Como se indica en el puesto, Y64 es una variante que hemos estado usando en Yahoo! durante un tiempo. No es nada terrible revolucionario, pero sí lograr el mismo objetivo de transmitir los datos codificados en base64 en una URL.
Comentario por Nicolás Zakas C. - 08 de julio 2010 #