ROSECODE 295
解码这段 JavaScript 2
Decode it 2 (javascript)
原题的交互功能已停用;现存程序以代码文本保留。
function func()
{
var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
var Key=parseInt(myform.myinput.value);
var encodedText = document.getElementById('encoded_text').innerHTML;
var outputDiv = document.getElementById("outputDiv");
outputDiv.innerHTML = "<pre\>";
if (Key<=0) {
alert("Should be >0");
} else {
var arr=new Array();
var i=0, keylen=0, s=Key, cd=0;
while (s>0) {
arr[keylen++]=s%10;
s=Math.floor(s/10);
}
if(keylen!=8) {
alert("key should be 8 digits long");
} else {
outputDiv.innerHTML += "<font size=+2 \><b\>Key="+Key+"</b\></font\><br\><br\>";
var inx=keylen;
while (1) {
for (i=s=0; i<keylen; ++i) s+=arr[i];
if (--inx<0) inx+=keylen;
arr[inx]=s;
if (s==Key) {
outputDiv.innerHTML += "Decoded: ";
var j=keylen, k=0;
for(i=0; i<encodedText.length; ++i) {
var inx=keyStr.indexOf(encodedText.charAt(i));
if (inx<0) continue;
if(--j<0)
j+=keylen;
inx+=arr[j]&63;
if (inx>=64)
inx-=64;
outputDiv.innerHTML += keyStr.charAt(inx);
if(i>0 && (i&63)==0)
outputDiv.innerHTML += "<br\>";
cd+=++k*keyStr.charCodeAt(inx);
}
if (cd==281077)
outputDiv.innerHTML += "<br\><br\><font color=\"green\">Decoded successfully.</font><br\>";
else
outputDiv.innerHTML += "<br\><br\><font color=\"red\">Decoded something but it doesn't seem to be OK.</font><br\>";
break;
} else if (s>Key) {
outputDiv.innerHTML += "<br\><br\><font color=\"red\">Not a key!</font><br\>";
break;
}
}
}
outputDiv.innerHTML += "<br\>";
}
outputDiv.innerHTML += "</pre\>";
}
4pxLgKsp+pVENasG+apWefzl9Ko/RbD7vGgUTbz7wm8UTb3lt5xNiOA3r5hS NOc0ApxRd+w48FdHefLu |
| 输入密钥进行解码。
关键=
myinput = 0
|
|
|