• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    关于加密解密 Base64 and URL and Hex Encoding and Decoding
    今天想换一下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; ilen; i++){ 
     result = pad + result; 
     } 
     return result; 

    function encodeHex(str){ 
     var result = ""; 
     for (var i=0; istr.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; istr.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> 
    您可能感兴趣的文章:
    • 关于base64加密/解密
    • vbs版的解密base64加密的脚本
    • Js base64 加密解密介绍
    • python字符串加密解密的三种方法分享(base64 win32com)
    • php使用base64加密解密图片示例分享
    • java常用工具类之DES和Base64加密解密类
    • php中base64_decode与base64_encode加密解密函数实例
    • C#实现基于Base64的加密解密类实例
    • C#编写的Base64加密和解密类
    上一篇:ASP代码加密
    下一篇:网络程序员伴侣Lshdic--脚本加解密器
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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