1
public class Encryption {
private static final int[] encrypt = {2, 9, 3, 4, 6, 8, 1, 0};
private static final int[] decrypt = new int[8];
private static final int minLength = 10;

String encrypt (String password)    {
    if(password.length()<minLength) {
        return password;

    }   else {
        char[] passArray = password.toCharArray();

        for (int i = 0; i < encrypt.length; i++)    {
            passArray[i] = (char) (passArray[i]);
            }
            return String.valueOf(passArray);
    }
}

String decrypt (String password)    {
    if (password.length()<minLength)    {
        return password;

    }   else {
        char[] arrayDecrypted = password.toCharArray();
        for (int i = 0; i < arrayDecrypted.length; i++) {
            arrayDecrypted[i] = (char) (arrayDecrypted[i]);
        }
        return String.valueOf(arrayDecrypted);
    }
}

// ------------------------------------------------ ---------------------------

import csci130.*;

public class Driver {
public static void main(String args[]){

Encryption pass = new Encryption();

System.out.println("Please enter a password");
String name = KeyboardReader.readLine();

System.out.println("Encrypted Password:  " + pass.encrypt(name));
System.out.println("Decrypted Password:  " + pass.decrypt(name));

  }
}

メソッドEncryptandDecryptを呼び出して、ユーザーにパスワードを入力させると、コンパイルされますが、入力したものだけが出力されます。入力したパスワードを変更してインデックスを変更し、復号化したときに元に戻すことを想定しています。上記は、暗号化とドライバーの2つの異なるクラスです。どんな助けでも大歓迎です。

4

2 に答える 2

3

パスワードが10より短い場合は、encrypt()そのまま返されます。

それ以外の場合は、パスワードの文字を繰り返し処理し、次のことを行います。

passArray[i] = (char) (passArray[i]);

この線が効果がないことは明らかだと思います。

于 2012-05-10T16:15:53.740 に答える
1

あなたの暗号化方法で、なぜあなたはこれをするのですか?

passArray[i] = (char) (passArray[i]);

あなたの意図は何ですか?(ヒントヒント..)

于 2012-05-10T16:15:23.810 に答える