为加密方案设置for循环

时间:2014-04-02 00:46:45

标签: javascript arrays loops for-loop

正如我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>

1 个答案:

答案 0 :(得分:0)

以下是对我认为您尝试做的事情的解释:

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;
}

它以一个数字作为参数,并返回一个字符串。

工作演示:http://jsfiddle.net/jfriend00/UW245/