这题考察js代码
function dechiffre(pass_enc){
var pass = "70,65,85,88,32,80,65,83,83,87,79,82,68,32,72,65,72,65";
var tab = pass_enc.split(',');
var tab2 = pass.split(',');var i,j,k,l=0,m,n,o,p = "";i = 0;j = tab.length;
k = j + (l) + (n=0);
n = tab2.length;
for(i = (o=0); i < (k = j = n); i++ ){o = tab[i-l];p += String.fromCharCode((o = tab2[i]));
if(i == 5)break;}
for(i = (o=0); i < (k = j = n); i++ ){
o = tab[i-l];
if(i > 5 && i < k-1)
p += String.fromCharCode((o = tab2[i]));
}
p += String.fromCharCode(tab2[17]);
pass = p;return pass;
}
String["fromCharCode"](dechiffre("\x35\x35\x2c\x35\x36\x2c\x35\x34\x2c\x37\x39\x2c\x31\x31\x35\x2c\x36\x39\x2c\x31\x31\x34\x2c\x31\x31\x36\x2c\x31\x30\x37\x2c\x34\x39\x2c\x35\x30"));
h = window.prompt('Enter password');
alert( dechiffre(h) );
乍一看很多,但实际上都是些没用的变量,经过简化后的代码:
function dechiffre(pass_enc) {
var pass = "70,65,85,88,32,80,65,83,83,87,79,82,68,32,72,65,72,65";
var tab = pass_enc.split(',');
var tab2 = pass.split(',');
var i, p = "";
for (i = 0; i < tab2.length; i++) {
p += String.fromCharCode(tab2[i]);
if (i == 5)
break;
}
for (i = 0; i < tab2.length; i++) {
if (i > 5 && i < tab.length - 1)
p += String.fromCharCode(tab2[i]);
}
p += String.fromCharCode(tab2[17]);
pass = p;
return pass;
}
String["fromCharCode"](dechiffre("\x35\x35\x2c\x35\x36\x2c\x35\x34\x2c\x37\x39\x2c\x31\x31\x35\x2c\x36\x39\x2c\x31\x31\x34\x2c\x31\x31\x36\x2c\x31\x30\x37\x2c\x34\x39\x2c\x35\x30"));
就不管代码是什么了,直接看pass的内容,写段代码转一下:
let pass=[70,65,85,88,32,80,65,83,83,87,79,82,68,32,72,65,72,65]
let code=pass.map((e)=>{
return String.fromCharCode(e)
})
console.log(code.toString())
但是解出来发现是加密码
那么就去解下面那个
依旧使用上面的代码,不过数组内容换一下
let pass=[55,56,54,79,115,69,114,116,107,49,50]
let code=pass.map((e)=>{
return String.fromCharCode(e)
})
console.log(code.toString())
得到正确密码,再加上格式cyberspace{},提交即可