Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为加密方案设置for循环_Javascript_Arrays_Loops_For Loop - Fatal编程技术网

Javascript 为加密方案设置for循环

Javascript 为加密方案设置for循环,javascript,arrays,loops,for-loop,Javascript,Arrays,Loops,For Loop,当我试图为一台加密机做一个特定的for循环时,它是一台玩具机,而不是一台安全的来自NSA的机器 当我按下加密按钮时,我需要运行加密,然后在另一个文本框中生成加密的信息。因此,我有一个文本框,用户在其中输入10000到99999之间要加密的数字,然后按encrypt,信息显示在第二个栏中。我有设置,但是for循环很复杂 以下是我的指示: 向“加密”按钮添加必要的代码,以执行以下操作: 创建一个for循环,在第一个框中输入的数字上加10,然后乘以 结果乘以3,再加上20,再乘以5,再加上30,然后

当我试图为一台加密机做一个特定的for循环时,它是一台玩具机,而不是一台安全的来自NSA的机器

当我按下加密按钮时,我需要运行加密,然后在另一个文本框中生成加密的信息。因此,我有一个文本框,用户在其中输入10000到99999之间要加密的数字,然后按encrypt,信息显示在第二个栏中。我有设置,但是for循环很复杂

以下是我的指示:

向“加密”按钮添加必要的代码,以执行以下操作:

创建一个for循环,在第一个框中输入的数字上加10,然后乘以 结果乘以3,再加上20,再乘以5,再加上30,然后 将其乘以7,以此类推。按照该模式进行5次迭代

b迭代完成后,将在 记忆,比如75432179

现在,这个数字需要通过匹配每个数字来转换为字符和字母 根据字母0的位置将其对应的字母表中的字母 与字母表中的第十个字母匹配。对于我们的示例:生成的字母 g是字母表中的第七个字母,e是第五个字母,d是第四个字母 信件等

d加密过程的最后一步是使用 古代凯撒密码:每一个字母被另一个字母替换为三个位置 正当因此,我们示例中的最终结果是:jhgfedjl注意到 也可以同时执行步骤c和d

这就是我到目前为止为我的脚本标签所做的;请告诉我我做错了什么:

       <script type="text/javascript">
    q=1
for (encryptThis=1; encryptThis <=5; encryptThis++){        
        if (encryptThis>=10000 && encryptThis<=99999){
        encryptinfo=((q+2)*10+encryptThis);
        }else{
        alert("number should be between 10000 and 99999");
        }}
    </script>
然后根据我的输入在表的底部显示:

<tr>
    <td>Plaintext (Plain information)</td>
    <td><input type="text"  name= "encryptThis" size="16" onchange=' '/></td>
    <td><input type="button" value=" Encrypt " onclick='
        system.out.encryptinfo.print((q+2)*10+encryptThis);


       '/></td>
还有

<tr>
    <td>Ciphertext (Encrypted information)</td>
    <td><input type="text"  name= "encryptinfo" size="16" onchange=' '/></td>
    <td></td>
</tr>

以下是对我认为你试图做的事情的解释:

function encrypt(num) {
    var sum = 0, str, i, result, index;
    var chars = "abcdefghijklmnop";
    var charBase = "0".charCodeAt(0);
    for (i = 0; i < 5; i++) {
        // ((2 * i) + 3) goes 3,5,7,9,11
        // ((i * 10) + 10) goes 10,20,30,40,50
        sum += (num * ((2 * i) + 3)) + ((i * 10) + 10);        
    }
    // convert num to string to get digits
    str = sum + "";
    result = "";
    for (i = 0; i < str.length; i++) {
        // get offset from "0" and add 3 for the cipher
        index = str.charCodeAt(i) - charBase + 3;
        // convert that index to a character
        result += chars.charAt(index);
    }
    return result;
}
它接受一个数字作为参数,并返回一个字符串


工作演示:

欢迎使用堆栈溢出。请尽快阅读这一页。你很幸运我看到了这个。当您标记一个问题时,通常应该包含一个标记,用于您的问题所涉及的主要语言—在本例中为JavaScript。这将引起懂这种语言的人的注意。你的标题应该更能描述问题,而不是你的心态。你应该把摇摇晃晃的换档键修好,或者使用适当的大写字母。一整块的问题文本很难阅读。你可能也应该把它分成几段。提问时请小心。system.out.encryptinfo不是一件事。你确定你没有混淆Java和JavaScript吗?for循环的五次迭代如下:for encrypthis=1;谢谢@jfriend00!你知道我该怎么做吗?我不知道我是否可以在这个for循环中生成一个函数,或者什么,因为这个特定的情况有5次迭代,它们都应该以不同的数量增加我的值。我不理解你所要求的其他内容。如果人们不理解你的问题,他们就帮不了你。您可以从更完整地描述您试图实现的加密算法开始。用伪代码显示所有5个步骤,例如,如果需要,用英文单词概括每个步骤。在正在运行的演示中,我认为我不能使用导致问题的addeventlister,因为我的数学需要稍微不同,所以我不得不更改它,我的chrome控制台说addeventlister是一个issue@user3479553-什么样的工作演示?您的问题中的任何代码中都没有addEventListener。我根本不知道你在说什么。如果您需要帮助诊断某个特定错误,那么您必须准确地告诉我们错误消息是什么以及它显示的代码行,并向我们展示足够的代码,以便我们了解可能发生的情况。如果你在我的演示中谈论addEventListener,那只是为了触发在演示中运行的代码——你可以随意触发代码。