仅打印字符串中的最后一个字符

时间:2014-01-29 05:34:20

标签: javascript string encryption

所以我正在做这个挑战,我应该采取这种错误的加密方法并在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>

谢谢!

1 个答案:

答案 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循环派生的所有值... 然后显示它。