使用密码数组加密字符串

时间:2014-01-04 18:32:44

标签: java encryption

我被赋予了编写程序的任务,该程序使用随机生成的普通字母密码将纯文本转换为密文。 密码数组对于字母表中的每个字母都有不同的特定字母。例如字母'a'对应'x','b'对应'j'等等。 纯文本和密文都存储为数组。  我能够生成密码数组,但我似乎无法使用纯文本和密文数组创建加密数组。 当我运行这段代码时,它会根据我的加密结果生成纯文本代码。

提前感谢你们可能提供的任何帮助

到目前为止,这是我的代码:

    String plaintextString = new String( plaintext ) ;
    plaintextString = plaintextString.toLowerCase();
    plaintext = plaintextString.toCharArray() ;

    char i =0 ;
    for (int index=0; index<plaintext.length; index++)
    {
        i = plaintext[index] ;
        if ( i == ' ')                      //The space character 
        {                                   //doesn't get encrypted
            plaintext[index] = ' ' ;
        }
        for (int index2=0; index2<alphabet.length; index2++)
        {
            if ( i == alphabet[index2])    //Alphabet array already generated
            {
                encrypt[index]= cipher[index2] ;                                    
            }
        }


    }

1 个答案:

答案 0 :(得分:0)

不确定如何生成(或获取)'cipher'数组,但它应该只是将每个ASCII字符映射到不同的ASCII字符。根据您的问题中的代码,这应该包括将Space字符(实际上是任何其他非字母字符)映射到自身。

如果不是这种情况,那么我建议你首先从你拥有的任何“映射对象”构造这样的“密码”数组。确定后,您的方法应该非常简单:

  • 输入:字符数组'明文'和'密码'。

  • 输出:字符数组'ciphertext'。

代码:

for (int index=0; index<plaintext.length; index++)
    ciphertext[index] = cipher[plaintext[index]];