【发布时间】:2014-05-13 00:49:14
【问题描述】:
正如我 stated before 一样,我正在尝试为加密机器(玩具机器,而不是从 NSA 保护的机器)制作特定的 for 循环。
当我按下加密按钮时,我需要运行加密,然后在另一个文本框中生成加密信息。所以我有一个文本框,用户在其中输入要加密的数字(10000 到 99999 之间),然后按加密,信息显示在第二个栏中。我已经设置好了,但是 for 循环很棘手。
这些是我的方向:
将必要的代码添加到“加密”按钮以执行以下操作:
a) 创建一个 for 循环,将第一个框中输入的数字加 10,然后乘以 结果乘以 3,将此结果加 20,然后将其乘以 5,将此结果加 30,然后 将它乘以 7,等等。按照该模式 5 次(5 次迭代)。
b) 迭代完成后,将有一个结果数 内存,比如说 75432179
c) 现在,这个数字需要通过匹配每个数字变成字符(字母) 根据字母的位置到其对应的字母表字母(0将 与字母表的第 10 个字母相匹配)。对于我们的示例:生成的字母 将是:gedcbagi(g 是字母表的第 7 个字母,e 是第 5 个字母,d 是第 4 个字母 信等)
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>
【问题讨论】:
-
欢迎来到 Stack Overflow。请尽快阅读About 页面。你很幸运我看到了这个。当你标记一个问题时,你通常应该为你的问题所涉及的主要语言添加一个标记——在这种情况下是 JavaScript。这将引起懂语言的人的注意。你的标题应该更能描述问题,而不是你的心态。而且您应该修复您的摇摆不定的换档键(或使用正确的大写字母)。一个坚实的问题文本块很难阅读。你也应该把它分成几段。提问时请小心。
-
system.out.encryptinfo 不是一个东西。你确定你没有混淆 Java 和 JavaScript 吗?
-
for循环的五次迭代将像这样完成:for (encryptThis=1; encryptThis <=5; encryptThis++)。此外,javascript 中没有int数据类型。所有变量都用var声明。 -
谢谢@jfriend00!你知道我应该为这个循环做什么吗?我不知道我是否可以在这个 for 循环中创建一个函数,或者因为这种特定情况有 5 次迭代,它们都应该通过不同的数字增加我的值
-
我不明白你在问什么。如果人们不理解您的问题,他们将无能为力。您可能可以先对您尝试实现的加密算法进行更完整的描述。如果需要,请在伪代码中显示所有 5 个步骤(例如,概述每个步骤的英文单词)。
标签: javascript arrays loops for-loop