인코딩 : Base64로와 Y64 갤러리에 유이 세
에서 오전 9시 39분에 의해 2010 년 | 니콜라스 C. Zakas 7 월 6 일 개발 | 5 댓글니콜라스 C. Zakas은 ( @ slicknet 트위터에서) 리드 프론트 엔드 엔지니어에 있습니다 야후! 홈페이지 , 유이 기여자, 그리고 저자의 웹 개발자를위한 전문 자바 스크립트 와 새롭게 출시된, 고성능 자바 스크립트 .
Base64로의 인코딩 시스템되었다 비트 - 7 비트와 8 원래 설계하도록 무손실 데이터를 전달하는 사이. 의 사용법의 기본 예제는 전통적으로 8 비트 시스템을 사용했는데, 우리 컴퓨터에서 홈 우리 그 동안의 이메일을 전송하는 7 비트 시스템을 사용하는 이메일입니다. 이것은 특히 판토마임 Base64로로 인코딩되어야하고 목적지에 따라 전송 텍스트 이외의 이메일 첨부 파일, 중요되었습니다.
더 최근에, Base64 인코딩 데이터 URI의에서의 사용에 대한 인기를 얻고있다. 그 알지 못하고 들어, 데이터 URI를은 HTML의 내부 파일을 포함하고 CSS의 방법입니다. 지원되는 데이터 URI를 포맷 중 하나는 Base64로합니다.
Base64로 인코딩은 여전히 난처 주로뿐만 아니라 안전한 데이터 전송을위한 프로그래밍 자주 사용된다. 일부 브라우저는 네이티브 Base64 인코딩 및 디코딩을 가지고 있지만,이 기능은 일반적으로 모든 브라우저에서 사용할 수 없으며 어떤 표준에 정의되지 않습니다. 유이 세 갤러리 Base64로 모듈 브라우저 학년 전체에 걸쳐 사용할 수있는 인코딩을 제공하는 일반적인 구현을 Base64로. Base64로 모듈을 사용하려면 페이지에 다음과 같습니다 :
<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> Base64로 모듈은 제공 Base64 : 방법으로이 개체를 encode() 및 decode() . 다음과 같이 메서드가 사용됩니다 :
var decodedText = Y.Base64.decode(encodedText); var encodedText2 = Y.Base64.encode(rawText); 모듈을 Base64로와 함께, 그 사람도 쓴 Y64 모듈을 . Y64는 Base64로 정보는 GET 요청의 일부로 전송해야 할 때 야후에서 사용하는 Base64로 변형됩니다. 플러스 (+), 슬래시 (/)과 동일 (=) : Base64로 정기가 URL을하지 못하므로 세 문자가 포함되어 있습니다. (.) Y64 인코딩 점이 이러한 대체, 밑줄 (_)와 대쉬 (-), 각각. 이것은 Y64 인코딩된 문자열은 문자의 이스케이프 URL을 걱정하지 않고 URL에 삽입되어야 할 수 있습니다.
Y64 모듈은 자동으로 다음 코드를 포함하는 경우에 가신 건가요 Base64로 모듈을 필요합니다 :
YUI({ gallery: 'gallery-2010.06.16-19-51' }).use('gallery-y64', function(Y) { //your code here }); Y64 모듈은 제공 Y64 와 개체를 encode() 과 decode() 방법을, 그래서 사용법입니다와 동일 Base64 개체 :
var decodedText = Y.Y64.decode(encodedText); var encodedText2 = Y.Y64.encode(rawText); 당신의 URL 문자열에서 Base64로 인코딩된 데이터를 전달 계획이라면, 당신은 대안으로 Y64을 고려해야 할 수도 있습니다.
알고리즘은 암호화되지 않습니다 Y64주세요 유지 및 Base64로 생각합니다. 암호화 알고리즘은 눈을 캐고에서 데이터를 보호하도록 설계되었습니다. Base64로와 Y64은 encoding 부패 데이터의 위험없이 전송 데이터를 알고리즘 설계 - 최종 목적지에 도착 한 유형에서 전송하면 데이터가 일어나는 부패의에 시스템이 다음과 인코딩하고있을 수 있습니다 전에 포맷 다른 해독 많은.
이것의 좋은 예는 링크 공유 기능입니다. 같은 가정, entrypoint에게 그것을 전달하여 링크를 공유하고 당신이 http://www.example.com?share=<url> . url 있지만, 전송되지 URL은 안전을위한 인코딩하는 데 필요한 URL은 스스로 데이터를 수 인코딩도 포함 URL이 -. 그리고 믿거나 말거나, 때로는 브라우저를 전송하기 전에 잘못 인코딩된 URL을 (그것은,하지만 전례없는 드문)하실 수 있습니다. 데이터가 좋은 모양에 도착 것이라는 자신감 높은 수준 들어, Y64 인코딩을 사용할 수 있습니다 :
var destination = "http://www.example.com?share=" + Y.Y64.encode(url); 대상은 다음의 URL 값을 해독합니다. 이 값이 URL에 인코딩을 필요로하지 않습니다 때문에, 데이터의 가능성이 감소 아르 전송 중에 손상되고.
모두가 Base64로 인코딩하거나 Y64 자신의 웹 응용 프로그램에서 사용해야합니다,하지만 이들은 다시 주머니에 유지하는 매우 강력한 도구가 될 수 있습니다.
추가 읽기 :
공유하고 확장할 수 : 즐겨찾기에 추가 del.icio.us으로 | 그것 Digg에! | reddit!
5 개의 댓글 »
이 게시물에 덧글에 대한 RSS 피드. 트랙백 URI를



당신은 문자마다 스위치를 ... 꽤 끔찍 사용하고 있습니다. 내가 쓴 그리고 몇 년 전에 예제를 게시 :
단순 Base64로의 인코딩 / 디코딩 - 자바 스크립트
익명의 생성자 함수에 작은 비틀기와 함께, 당신은 동등하게 효율적인 Y64 함수를 생성할 수 있습니다.
네가 원하는 건 뭐든지 재사용 주시기 바랍니다.
에 의해 댓글 프레스턴 기사를 베니 스터 - 2010년 7월 6일 #
이 문서는 HTML 문서 안에 포함할 파일의 URI로 데이터를 사용할 수 있다고 언급. 이 모듈 지원 (학년 브라우저를 통해) 그 기능을합니까?
Sause에 의해 코멘트 - 2010년 7월 6일 #
명확히하려면 같다 Y64 같은 규칙을에서 사용하면 URL에 대한 Base64로 ? 그것은 번역 "+"=> "를 -"하지만이 게시물 Y64가 번역하는 것을 "+"=> 제안합니다 ".". 또한, URL을 Base64로이 패딩 "="의 생략.
Sheakoski 마이클 댓글 작성 - 2010년 7월 6일 #
@ Sause -이 모듈은 Base64 인코딩입니다. 데이터 URI는 기능과, 브라우저 (또는하지!)가 내장되어있어 그래서이 모듈은 기본적으로 그들을 지원하지 않는 브라우저 지원 도움을 아무것도 할 수없는 무언가이다.
에 의해 댓글 니콜라스 C. Zakas - 2010년 7월 7일 #
@ 마이클 - Y64는 URL에 대한 Base64로 동일하지 않습니다. 게시물에 명시된 바와 같이, Y64 우리가 잠시 동안 야후에서 사용했던 전술 변형입니다. 이건 아무것도 몹시 혁명지만, 그것은 URL에서 Base64로 인코딩된 데이터를 전달하는 것과 같은 목표를 달성 않습니다.
에 의해 댓글 니콜라스 C. Zakas - 2010년 7월 8일 #