关于加密解密 Base64 and URL and Hex Encoding and Decodi(2)


 return c; 

function encodeBase64(str){ 
 setBase64Str(str); 
 var result = ''; 
 var inBuffer = new Array(3); 
 var lineCount = 0; 
 var done = false; 
 while (!done && (inBuffer[0] = readBase64()) != END_OF_INPUT){ 
 inBuffer[1] = readBase64(); 
 inBuffer[2] = readBase64(); 
 result += (base64Chars[ inBuffer[0] >> 2 ]); 
 if (inBuffer[1] != END_OF_INPUT){ 
 result += (base64Chars [(( inBuffer[0] << 4 ) & 0x30) | (inBuffer[1] >> 4) ]); 
 if (inBuffer[2] != END_OF_INPUT){ 
 result += (base64Chars [((inBuffer[1] << 2) & 0x3c) | (inBuffer[2] >> 6) ]); 
 result += (base64Chars [inBuffer[2] & 0x3F]); 
 } else { 
 result += (base64Chars [((inBuffer[1] << 2) & 0x3c)]); 
 result += ('='); 
 done = true; 
 } 
 } else { 
 result += (base64Chars [(( inBuffer[0] << 4 ) & 0x30)]); 
 result += ('='); 
 result += ('='); 
 done = true; 
 } 
 lineCount += 4; 
 if (lineCount >= 76){ 
 result += ('\n'); 
 lineCount = 0; 
 } 
 } 
 return result; 

function readReverseBase64(){  
 if (!base64Str) return END_OF_INPUT; 
 while (true){  
 if (base64Count >= base64Str.length) return END_OF_INPUT; 
 var nextCharacter = base64Str.charAt(base64Count); 
 base64Count++; 
 if (reverseBase64Chars[nextCharacter]){ 
 return reverseBase64Chars[nextCharacter]; 
 } 
 if (nextCharacter == 'A') return 0; 
 } 
 return END_OF_INPUT; 

function ntos(n){ 
 n=n.toString(16); 
 if (n.length == 1) n="0"+n; 
 n="%"+n; 
 return unescape(n); 

function decodeBase64(str){ 
 setBase64Str(str); 
 var result = ""; 
 var inBuffer = new Array(4); 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/1708.html