本文目錄一覽:
js在線解密 javascript解密
這個只是一個漢字的unicode編碼.
告訴樓主一個簡單的方法.把上面的代碼放入UltraEdit中,把”\”替換為”%”,然後去 解碼,複製代碼.解密.
最後附上我解密後的代碼
var owner = “2278749”;var sf_mess_cfg = {theme:”classic”,color:”blue”,title:”歡迎給我們留言”,send:”發送”,copyright:”百度提供技術支持”,mbpos:”RD”};var sf_mess_msg = {emailErr: ‘請填寫正確的Email’,messErr: ‘您的留言字數已超過限制,請保留在1000個字以內。’,prefix: ‘請填寫’,success: ‘我們已經收到您的留言,稍候會與您聯繫.謝謝!’,fail: ‘您的留言發送失敗,請重試。’};var sf_mess_cols = [{type:”textarea”,mbtype: “message”,tip: “留言內容”,innertip: “請在此留言,我們會及時聯繫您”,idname: “content”},{type:”text”,mbtype: “tel”,tip: “手機號碼”,innertip: “請輸入您的手機號碼”,idname: “phone”}];document.write(‘script src=”” type=”text/javascript”/script’);
JS代碼怎麼解碼??簡單
SCRIPTfunction stop(){return false;}document.oncontextmenu=stop;/SCRIPTscript language=”JavaScript”!–function SymError(){ return true;}window.onerror = SymError;//–/scriptscript language=”Javascript”function PassConfirm() {var x=document.password.pass.valueif (x==”tyyxt”) {window.open(“gothree.php”,”_self”) }else {window.open(“error.php”,”_self”) }}/SCRIPTcentertable cellSpacing=”0″ cellPadding=”4″ border=”1″ width=”389″ height=”1″ tr td bgColor=”#336600″ width=”378″ height=”18″ p align=”center”font size=”3″ color=”#FFFF00″黑客遊戲第二關/font/p /td /tr tr td bgColor=”#990000″ width=”378″ height=”1″ p align=”center”font color=”#FFFF00″form name=”password” method=”post”p align=”center”要求:進入第三關!/pp align=”center”請輸入密碼:/pp align=”center”input type=”password” name=”pass” size=”20″/pp align=”center”input type=”button” value=”確定” onClick=”return PassConfirm()”/p/FORM/font /td /tr /table/center
怎麼解決js解碼base64中文亂碼問題
最近在做一個插件開發,我用c++在插件裡面把帶中文的字元串用base64演算法加密後推給網頁的js去解碼,解出來的相信大家預料到了,洋文一字不差,中文就TMD的都是亂碼。
google了一下,也沒找到能解決問題的方法,沒辦法只好自己研究了。後來發現問題原因了,編碼過程肯定是沒有問題的,看到前面加顏色那段字了沒,就是我解出來的編碼雖然是utf8,但是將中文文字進行Base64編碼再解碼後,重新排列編碼的時候,往往就會出現亂碼,UTF8頁面的編碼實際還是用UTF-16存儲的。應該在解碼後把UTF8還原為UTF-16格式。這樣就能真正搞定javascript解密中文base64編碼的問題了。
這裡我就把js解碼代碼貼出來,給廣大同胞:
/**
* Waitang.com
*/
var base64EncodeChars = “ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/”;
var base64DecodeChars = new Array(
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63,
52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1,
-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1,
-1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1);
//base64編碼
function base64encode(str) {
var out, i, len;
var c1, c2, c3;
len = str.length;
i = 0;
out = “”;
while(i len) {
c1 = str.charCodeAt(i++) 0xff;
if(i == len)
{
out += base64EncodeChars.charAt(c1 2);
out += base64EncodeChars.charAt((c1 0x3) 4);
out += “==”;
break;
}
c2 = str.charCodeAt(i++);
if(i == len)
{
out += base64EncodeChars.charAt(c1 2);
out += base64EncodeChars.charAt(((c1 0x3) 4) | ((c2 0xF0) 4));
out += base64EncodeChars.charAt((c2 0xF) 2);
out += “=”;
break;
}
c3 = str.charCodeAt(i++);
out += base64EncodeChars.charAt(c1 2);
out += base64EncodeChars.charAt(((c1 0x3) 4) | ((c2 0xF0) 4));
out += base64EncodeChars.charAt(((c2 0xF) 2) | ((c3 0xC0) 6));
out += base64EncodeChars.charAt(c3 0x3F);
}
return out;
}
//base64解碼
function base64decode(str) {
var c1, c2, c3, c4;
var i, len, out;
len = str.length;
i = 0;
out = “”;
while(i len) {
/* c1 */
do {
c1 = base64DecodeChars[str.charCodeAt(i++) 0xff];
} while(i len c1 == -1);
if(c1 == -1)
break;
/* c2 */
do {
c2 = base64DecodeChars[str.charCodeAt(i++) 0xff];
} while(i len c2 == -1);
if(c2 == -1)
break;
out += String.fromCharCode((c1 2) | ((c2 0x30) 4));
/* c3 */
do {
c3 = str.charCodeAt(i++) 0xff;
if(c3 == 61)
return out;
c3 = base64DecodeChars[c3];
} while(i len c3 == -1);
if(c3 == -1)
break;
out += String.fromCharCode(((c2 0XF) 4) | ((c3 0x3C) 2));
/* c4 */
do {
c4 = str.charCodeAt(i++) 0xff;
if(c4 == 61)
return out;
c4 = base64DecodeChars[c4];
} while(i len c4 == -1);
if(c4 == -1)
break;
out += String.fromCharCode(((c3 0x03) 6) | c4);
}
return out;
}
這是轉換utf8到utf16的代碼:
/**
* Yovae.com
*/
//utf-8轉utf16
function utf16to8(str) {
var out, i, len, c;
out = “”;
len = str.length;
for(i = 0; i len; i++) {
c = str.charCodeAt(i);
if ((c = 0x0001) (c = 0x007F)) {
out += str.charAt(i);
} else if (c 0x07FF) {
out += String.fromCharCode(0xE0 | ((c 12) 0x0F));
out += String.fromCharCode(0x80 | ((c 6) 0x3F));
out += String.fromCharCode(0x80 | ((c 0) 0x3F));
} else {
out += String.fromCharCode(0xC0 | ((c 6) 0x1F));
out += String.fromCharCode(0x80 | ((c 0) 0x3F));
}
}
return out;
}
//utf-16轉utf-8
function utf8to16(str) {
var out, i, len, c;
var char2, char3;
out = “”;
len = str.length;
i = 0;
while(i len) {
c = str.charCodeAt(i++);
switch(c 4)
{
case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:
// 0xxxxxxx
out += str.charAt(i-1);
break;
case 12: case 13:
// 110x xxxx 10xx xxxx
char2 = str.charCodeAt(i++);
out += String.fromCharCode(((c 0x1F) 6) | (char2 0x3F));
break;
case 14:
// 1110 xxxx 10xx xxxx 10xx xxxx
char2 = str.charCodeAt(i++);
char3 = str.charCodeAt(i++);
out += String.fromCharCode(((c 0x0F) 12) |
((char2 0x3F) 6) |
((char3 0x3F) 0));
break;
}
}
return out;
}
這是c++ base64編碼代碼:
/**
* Yovae.com
*/
CString encode(const CString in_str)
{
const CString _base64_encode_chars = “ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/”;
CString out_str;
unsigned char c1, c2, c3;
int i = 0;
int len = in_str.GetLength();
while ( i {
c1 = in_str[i++];
if ( i==len )
{
out_str += _base64_encode_chars[ c12 ];
out_str += _base64_encode_chars[ (c10x3)4 ];
out_str += “==”;
break;
}
c2 = in_str[i++];
if ( i==len )
{
out_str += _base64_encode_chars[ c12 ];
out_str += _base64_encode_chars[ ((c10x3)4) | ((c20xF0)4) ];
out_str += _base64_encode_chars[ (c20xF)2 ];
out_str += “=”;
break;
}
c3 = in_str[i++];
out_str += _base64_encode_chars[ c12 ];
out_str += _base64_encode_chars[ ((c10x3)4) | ((c20xF0)4) ];
out_str += _base64_encode_chars[ ((c20xF)2) | ((c30xC0)6) ];
out_str += _base64_encode_chars[ c30x3F ];
}
return out_str;
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/312813.html