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


 var done = false; 
 while (!done && (inBuffer[0] = readReverseBase64()) != END_OF_INPUT 
 && (inBuffer[1] = readReverseBase64()) != END_OF_INPUT){ 
 inBuffer[2] = readReverseBase64(); 
 inBuffer[3] = readReverseBase64(); 
 result += ntos((((inBuffer[0] << 2) & 0xff)| inBuffer[1] >> 4)); 
 if (inBuffer[2] != END_OF_INPUT){ 
 result += ntos((((inBuffer[1] << 4) & 0xff)| inBuffer[2] >> 2)); 
 if (inBuffer[3] != END_OF_INPUT){ 
 result += ntos((((inBuffer[2] << 6) & 0xff) | inBuffer[3])); 
 } else { 
 done = true; 
 } 
 } else { 
 done = true; 
 } 
 } 
 return result; 

var digitArray = new Array('0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'); 
function toHex(n){ 
 var result = '' 
 var start = true; 
 for (var i=32; i>0;){ 
 i-=4; 
 var digit = (n>>i) & 0xf; 
 if (!start || digit != 0){ 
 start = false; 
 result += digitArray[digit]; 
 } 
 } 
 return (result==''?'0':result); 

function pad(str, len, pad){ 
 var result = str; 
 for (var i=str.length; i<len; i++){ 
 result = pad + result; 
 } 
 return result; 

function encodeHex(str){ 
 var result = ""; 
 for (var i=0; i<str.length; i++){ 
 result += pad(toHex(str.charCodeAt(i)&0xff),2,'0'); 
 } 
 return result; 

function decodeHex(str){ 
 str = str.replace(new RegExp("s/[^0-9a-zA-Z]//g")); 
 var result = ""; 
 var nextchar = ""; 
 for (var i=0; i<str.length; i++){ 
 nextchar += str.charAt(i); 
 if (nextchar.length == 2){ 
 result += ntos(eval('0x'+nextchar)); 
 nextchar = ""; 
 } 
 } 
 return result; 

//--></script> 
</head> 

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

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