所以我正在做这个挑战,我应该采取这种错误的加密方法并在15秒内解密消息。好吧我已经构建了程序,它非常小,但它只给了我字符串中的最后一个字符。我明白为什么是因为变量通过for循环发送x处理方程直到最后一个。然后是下一步,它从十进制转换为ascii,然后显示在一个段落中。我只是想不出如何为每个角色执行此操作的方法,以便处理整个消息。它并没有欺骗这个挑战,因为我在技术上已经完成了解密,因为无法解决这个小问题。这是完全合法的,来自hackthis.co.uk。我在Google上找不到任何东西,并且一直在尝试我能想到的一切。唯一的另一个想法就是写出一个巨大的数组,因为消息是随机生成的,所以会出错并崩溃。
以下是代码:
<html>
<head>
<script>
function decrypt() {
var input = document.getElementById("input").value;
var x = input.split(",");
for (var i = 0; i < x.length; i++) {
if (x[i].type = "text") {
crack = 94 - (x[i] - 32) + 32;
toTxt = String.fromCharCode(this, crack);
document.getElementById("prompt").innerHTML = toTxt;
}
}
}
</script>
</head>
<body>
<textarea rows='4' cols='100' style='resize:none;' id='input'></textarea>
<br>
<input type='button' value='execute' onclick='decrypt()' />
<p id='prompt'>
</p>
</body>
</html>
谢谢!
答案 0 :(得分:1)
<html>
<head>
<script>
function decrypt() {
var input = document.getElementById("input").value;
var x = input.split(",");
var txtDisp="";
for (var i = 0; i < x.length; i++) {
if (x[i].type == "text") {
crack = 94 - (x[i] - 32) + 32;
toTxt = String.fromCharCode(this, crack);
txtDisp=txtDisp+","+toTxt;
}
}
document.getElementById("prompt").innerHTML = txtDisp;
}
</script>
</head>
<body>
<textarea rows='4' cols='100' style='resize:none;' id='input'></textarea>
<br>
<input type='button' value='execute' onclick='decrypt()' />
<p id='prompt'>
</p>
</body>
</html>
在另一个字符串中连接从for循环派生的所有值... 然后显示它。