/* * Base 64 implementation in JavaScript * Copyright (c) 2009 Nicholas C. Zakas. All rights reserved. * Base64-encodes a string of text. * @param {String} text The text to encode. * @return {String} The base64-encoded string. Example decode : base64Decode('putBase64encodedStringHere') Server Side Encode / PHP */ function base64Encode(text){if(/([^\u0000-\u00ff])/.test(text)){throw new Error("Can't base64 encode non-ASCII characters.");}var digits="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",i=0,cur,prev,byteNum,result=[];while(i>2));break;case 1:result.push(digits.charAt((prev&3)<<4|(cur>>4)));break;case 2:result.push(digits.charAt((prev&15)<<2|(cur>>6)));result.push(digits.charAt(cur&63));break;}prev=cur;i++;}if(byteNum==0){result.push(digits.charAt((prev&3)<<4));result.push("==");}else{if(byteNum==1){result.push(digits.charAt((prev&15)<<2));result.push("=");}}return result.join("");}function base64Decode(text){text=text.replace(/\s/g,"");if(!(/^[a-z0-9\+\/\s]+\={0,2}$/i.test(text))||text.length%4>0){throw new Error("Not a base64-encoded string.");}var digits="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",cur,prev,digitNum,i=0,result=[];text=text.replace(/=/g,"");while(i>4));break;case 2:result.push(String.fromCharCode((prev&15)<<4|cur>>2));break;case 3:result.push(String.fromCharCode((prev&3)<<6|cur));break;}prev=cur;i++;}return result.join("");}