如何在javascript中将for循环加密代码放入一个可行的表中?
我正在尝试创建一个加密机,在其中键入一个5位数的数字,它通过更改数字然后将其转换为字母来加密该数字。有关指示如下: 向“加密”按钮添加必要的代码,以执行以下操作: 创建一个for循环,在第一个框中输入的数字上加10,然后乘以 结果乘以3,再加上20,再乘以5,再加上30,再乘以7,等等。按照这个模式5次迭代5次 b迭代完成后,将在 记忆,比如75432179 现在,这个数字需要通过匹配每个数字来转换为字符和字母 根据字母0的位置将其对应的字母表中的字母 与字母表中的第十个字母匹配。对于我们的示例:生成的字母 g是字母表中的第七个字母,e是第五个字母,d是第四个字母 信件等 d加密过程的最后一步是使用 古代凯撒密码:每一个字母被另一个字母替换为三个位置 正当因此,我们示例中的最终结果是:jhgfedjl注意到 也可以同时执行步骤c和d 我必须以带有参数的表格的形式显示整个内容: 创建一个包含三列三行的表 在第一列中,只需放置描述性信息,如图1所示 页面 在第二列上创建两个文本框将文本框的大小设置为16 在第三列上创建一个按钮。将其标记为“加密” 到目前为止,我已经完成了大部分代码,但我似乎无法让它正常工作。以下是我目前的代码:如何在javascript中将for循环加密代码放入一个可行的表中?,javascript,loops,for-loop,encryption,textbox,Javascript,Loops,For Loop,Encryption,Textbox,我正在尝试创建一个加密机,在其中键入一个5位数的数字,它通过更改数字然后将其转换为字母来加密该数字。有关指示如下: 向“加密”按钮添加必要的代码,以执行以下操作: 创建一个for循环,在第一个框中输入的数字上加10,然后乘以 结果乘以3,再加上20,再乘以5,再加上30,再乘以7,等等。按照这个模式5次迭代5次 b迭代完成后,将在 记忆,比如75432179 现在,这个数字需要通过匹配每个数字来转换为字符和字母 根据字母0的位置将其对应的字母表中的字母 与字母表中的第十个字母匹配。对于我们的示例
<style type="text/css">
body {background-color: black; color: lightgreen; font-family: helvetica; text-align: center}
table {margin-left: auto; margin-right: auto}
</style>
<body>
<script type ="text/javascript">
function encrypt(num) {
var sum = 0, str, i, result, index;
var chars = "abcdefghijklmnop";
var charBase = "0".charCodeAt(0);
for (i = 0; i < 5; i++) {
sum += (num * ((2 * i) + 3)) + ((i * 10) + 10);
}
str = sum + "";
result = "";
for (i = 0; i < str.length; i++) {
index = str.charCodeAt(i) - charBase + 3;
result += chars.charAt(index);
}
return result;
}
document.getElementById("go").addEventListener("click", function() {
var num = parseInt(document.getElementById("num").value, 10);
var out = encrypt(num);
document.getElementById("encryptedValue").innerHTML = out;
});
</script>
<h1>ATM</h1>
<br/>
<hr/>
<br/>
<table align="center" border="1">
<tr>
<td><b>Plaintext</b> (Plain information)</td>
<td><input type="text" size="16" onchange=''/></td>
<td><button id="go"> Encrypt </button></td>
</tr>
<tr>
<td><b>Ciphertext</b> (Encrypted information)</td>
<td><input type="text" name="encryptValue" size="16" onchange=''/></td>
<td></td>
</tr>
<tr>
<td>.</td>
<td></td>
<td></td>
</tr>
</table>
</body>
尝试回答您在评论中提出的一个简单问题: 代码中的这一行:
document.getElementById("encryptedValue").innerHTML = out;
将加密操作的结果放入页面上的非表单对象中,例如div或id=encryptedValue的范围。您可以在HTML中创建一个div或span,并为其指定id,代码应将结果放入页面上的该对象中
或者,将标记为Ciphertext的文本更改为div
或者,将id=encryptedValue添加到密文标记中,并将上面的代码行更改为:
document.getElementById("encryptedValue").value = out;
这是家庭作业吗?你打算自己写吗?你是同一个用户吗?不同的用户id,但似乎是写这两个问题的同一个文本和问题,并且是在同一个主题上?如果是这样的话,你应该坚持使用一个用户id,并且只使用一个用户id,因为你似乎在使用我在其中一个问题中的代码,你能接受这个答案吗?我真的认为你应该自己写一些代码。到目前为止,这个答案中的代码是直接从我对上一个问题的答案复制而来的。jfriend00我是一个不同的用户,但我想我们是在同一个班级里问同样的问题。我知道它是复制的,但那是因为我真的无法从我的书或网上找到任何帮助,也从未得到任何关于这方面的事先指导。如果您能在这里帮助我,这将意味着很多。@jfriend00忘记在我以前的评论中使用标记了。我尝试了,但新的textboxdocument.GetElementByIdeEncryptedValue.value=out中仍然没有显示EncyOption; }; ATM明文明文明文信息加密密文加密信息@user3496066-正如您可能看到的,在注释中发布多行代码或HTML是毫无意义的。它们根本不可读。如果你想让人们理解你刚刚发布的内容,那么将其添加到问题的末尾,并发布一条评论,说明你添加的内容和原因。更妙的是,将代码放入JSFIDLE并共享链接,这样每个人都可以看到什么是不起作用的。