看函数名就知道了,编码与解码两个函数。

function Encode64(value) {  
    value = escape(value);  
    var output = "";  
    var chr1, chr2, chr3 = "";  
    var enc1, enc2, enc3, enc4 = "";  
    var i = 0;  

    do {  
        chr1 = value.charCodeAt(i  );  
        chr2 = value.charCodeAt(i  );  
        chr3 = value.charCodeAt(i  );  

        enc1 = chr1 >> 2;  
        enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);  
        enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);  
        enc4 = chr3 & 63;  

        if (isNaN(chr2)) {  
            enc3 = enc4 = 64;  
        } else if (isNaN(chr3)) {  
            enc4 = 64;  
        }  

        output = output   keyStr.charAt(enc1)   keyStr.charAt(enc2)   keyStr.charAt(enc3)   keyStr.charAt(enc4);  
        chr1 = chr2 = chr3 = "";  
        enc1 = enc2 = enc3 = enc4 = "";  
    } while (i < value.length);  

    return output;  
}
function Decode64(value) {  
    var returnString = "";  
    var chr1, chr2, chr3 = "";  
    var enc1, enc2, enc3, enc4 = "";  
    var i = 0;  
    var codes = /[^A-Za-z0-9\ \/\=]/g;  
    if (codes.exec(value)) {  
        alert("错误的输入");  
    }  
    value = value.replace(/[^A-Za-z0-9\ \/\=]/g, "");  

    do {  
        enc1 = keyStr.indexOf(value.charAt(i  ));  
        enc2 = keyStr.indexOf(value.charAt(i  ));  
        enc3 = keyStr.indexOf(value.charAt(i  ));  
        enc4 = keyStr.indexOf(value.charAt(i  ));  

        chr1 = (enc1 << 2) | (enc2 >> 4);  
        chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);  
        chr3 = ((enc3 & 3) << 6) | enc4;  

        returnString = returnString   String.fromCharCode(chr1);  

        if (enc3 != 64) {  
            returnString = returnString   String.fromCharCode(chr2);  
        }  
        if (enc4 != 64) {  
            returnString = returnString   String.fromCharCode(chr3);  
        }  

        chr1 = chr2 = chr3 = "";  
        enc1 = enc2 = enc3 = enc4 = "";  

    } while (i < value.length);  

    return unescape(returnString);  
}