关于加密解密 Base64 and URL and Hex Encoding and Decoding

IT 文章18秒前更新 小编
0 0 0

本文主要讲解关于关于加密解密 Base64 and URL and Hex Encoding and Decoding相关内容,由优网导航(www.uonce.com)提供,欢迎关注收藏本站!今天想换一下Discuz论坛的风格,谁知下载风格文件后,发现竟然是通过Base64加密过的   小林给推荐了个解密的页面,提取出代码如下:
复制代码 代码如下:

<!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”>  <html>  <head>  <title>Base64 and URL and Hex Encoding and Decoding</title>  <meta name=”description” content=”Encodes or decodes data in Base64 or URL encoding using client side JavaScript” />  <meta name=”keywords” content=”base64, base 64, urlencode, urldecode, hexencode, hex encode, hexdecode hex decode, javascript base64, javascript base 64, javascript urlencode, javascript urldecode, javascript hexencode, javascript hexdecode” />  <link rel=”shortcut icon” href=”http://ostermiller.org/favicon.ico” type=”image/x-icon” />  <script language=javascript type=”text/javascript”>  <!–  function urlDecode(str){   str=str.replace(new RegExp(‘+’,’g’),’ ‘);   return unescape(str);  }  function urlEncode(str){   str=escape(str);   str=str.replace(new RegExp(‘+’,’g’),’%2B’);   return str.replace(new RegExp(‘%20′,’g’),’+’);  }  var END_OF_INPUT = -1;  var base64Chars = new Array(   ‘A’,’B’,’C’,’D’,’E’,’F’,’G’,’H’,   ‘I’,’J’,’K’,’L’,’M’,’N’,’O’,’P’,   ‘Q’,’R’,’S’,’T’,’U’,’V’,’W’,’X’,   ‘Y’,’Z’,’a’,’b’,’c’,’d’,’e’,’f’,   ‘g’,’h’,’i’,’j’,’k’,’l’,’m’,’n’,   ‘o’,’p’,’q’,’r’,’s’,’t’,’u’,’v’,   ‘w’,’x’,’y’,’z’,’0′,’1′,’2′,’3′,   ‘4’,’5′,’6′,’7′,’8′,’9′,’+’,’/’  );  var reverseBase64Chars = new Array();  for (var i=0; i < base64Chars.length; i++){   reverseBase64Chars[base64Chars[i]] = i;  }  var base64Str;  var base64Count;  function setBase64Str(str){   base64Str = str;   base64Count = 0;  }  function readBase64(){    if (!base64Str) return END_OF_INPUT;   if (base64Count >= base64Str.length) return END_OF_INPUT;   var c = base64Str.charCodeAt(base64Count) & 0xff;   base64Count++;   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);   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>  <body>  <form name=code onsubmit=”return false()”>  <textarea name=text style=’width:100%;height:75%;’ onfocus=’if (this.value==”Enter text to encode or decode here.”){this.value=””;}’>Enter text to encode or decode here.</textarea>  <table>  <tr><td align=center>  <input value=”Encode” type=button onclick=”document.code.text.value=urlEncode(document.code.text.value);”>  </td><td align=center>  URL  </td><td align=center>  <input value=”Decode” type=button onclick=”document.code.text.value=urlDecode(document.code.text.value);”>  </td></tr>  <tr><td align=center>  <input value=”Encode” type=button onclick=”document.code.text.value=encodeBase64(document.code.text.value);”>  </td><td align=center>  Base 64  </td><td align=center>  <input value=”Decode” type=button onclick=”document.code.text.value=decodeBase64(document.code.text.value);”>  </td></tr>  <tr><td align=center>  <input value=”Encode” type=button onclick=”document.code.text.value=encodeHex(document.code.text.value);”>  </td><td align=center>  Hex  </td><td align=center>  <input value=”Decode” type=button onclick=”document.code.text.value=decodeHex(document.code.text.value);”>  </td></tr>  <tr><td align=center>  </td><td align=center>  <input type=reset value=Clear>  </td><td align=center>  </td></tr>  </table>  </form>  <hr>  Base64 encode/decode was ported from a <a href=”http://ostermiller.org/utils/Base64.html”>Java Base64 encoder/decoder</a>.<br>  Base64 encode/decode was ported to <a href=”http://ostermiller.org/base64_actionscript.html”>Macromedia Actionscript</a>.<br>  <h3>License</h3>  <p>This program is free software; you can redistribute it and/or modify it  under the terms of the GNU General Public License as published by the Free  Software Foundation; either version 2 of the License, or (at your option)  any later version.</p>  <p>This program is distributed in the hope that it will be useful,  but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY  or FITNESS FOR A PARTICULAR PURPOSE. See the  <a href=”http://www.gnu.org/copyleft/gpl.html”>GNU  General Public License</a> for more details.</p>  <div style=”padding:0.2cm;”><a href=”http://ostermiller.org/calc/”>More converters, calculators, and other JavaScript goodies</a></div>  <div style=”padding:0.2cm;text-align:right;”><a href=”http://ostermiller.org/”>ostermiller.org</a> (<a href=”http://ostermiller.org/siteindex.html”>site index</a>)</div>  <div style=”padding:0.2cm;”><p>Copyright <a href=”http://ostermiller.org/contact.pl?regarding=JavaScript+Encoding” class=mail>Stephen Ostermiller</a> 2003-2006</p></div>  </body>  </html> 

您可能感兴趣的文章:

ad

程序员导航

优网导航旗下整合全网优质开发资源,一站式IT编程学习与工具大全网站

  • 关于base64加密/解密
  • vbs版的解密base64加密的脚本
  • Js base64 加密解密介绍
  • python字符串加密解密的三种方法分享(base64 win32com)
  • php使用base64加密解密图片示例分享
  • java常用工具类之DES和Base64加密解密类
  • php中base64_decode与base64_encode加密解密函数实例
  • C#实现基于Base64的加密解密类实例
  • C#编写的Base64加密和解密类

相关推荐: Miniscript 让比特币真正可编程:从继承规划到企业财库,普通人也能玩转复杂规则

你有没有想过,有一天你的比特币钱包不仅能“存钱”,还能自动执行复杂的花费逻辑?比如: 你突然失联半年,家人能自动取回资金,但平时谁都不能动? 公司付款要两个总监签字,大额支出还得 CFO 加签? 和人做场外交易,既不用交托管费,又能靠代码保障安全? 这些听起来…

© 版权声明

相关文章

暂无评论

暂无评论...