这题考察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{},提交即可
