12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- define("dojox/encoding/base64", ["dojo/_base/lang"], function(lang) {
-
- var base64 = lang.getObject("dojox.encoding.base64", true);
-
- var p="=";
- var tab="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
- base64.encode=function(/* byte[] */ba){
-
-
- var s=[], l=ba.length;
- var rm=l%3;
- var x=l-rm;
- for (var i=0; i<x;){
- var t=ba[i++]<<16|ba[i++]<<8|ba[i++];
- s.push(tab.charAt((t>>>18)&0x3f));
- s.push(tab.charAt((t>>>12)&0x3f));
- s.push(tab.charAt((t>>>6)&0x3f));
- s.push(tab.charAt(t&0x3f));
- }
-
- switch(rm){
- case 2:{
- var t=ba[i++]<<16|ba[i++]<<8;
- s.push(tab.charAt((t>>>18)&0x3f));
- s.push(tab.charAt((t>>>12)&0x3f));
- s.push(tab.charAt((t>>>6)&0x3f));
- s.push(p);
- break;
- }
- case 1:{
- var t=ba[i++]<<16;
- s.push(tab.charAt((t>>>18)&0x3f));
- s.push(tab.charAt((t>>>12)&0x3f));
- s.push(p);
- s.push(p);
- break;
- }
- }
- return s.join("");
- };
- base64.decode=function(/* string */str){
-
-
- var s=str.split(""), out=[];
- var l=s.length;
- while(s[--l]==p){ }
- for (var i=0; i<l;){
- var t=tab.indexOf(s[i++])<<18;
- if(i<=l){ t|=tab.indexOf(s[i++])<<12 };
- if(i<=l){ t|=tab.indexOf(s[i++])<<6 };
- if(i<=l){ t|=tab.indexOf(s[i++]) };
- out.push((t>>>16)&0xff);
- out.push((t>>>8)&0xff);
- out.push(t&0xff);
- }
-
- while(out[out.length-1]==0){ out.pop(); }
- return out;
- };
-
- return base64;
- });
|