我的 Chiper 实验室需要帮助。我的指示是:
编写一个程序,接受任意数量的字符串作为命令行参数,并显示那些用 Atbash 密码加密的字符串。您的程序应该尽可能模块化,并使用良好的面向对象编程技术。必须使用 javadoc 注释彻底记录您的程序。
我有String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
应该对字符串进行编码,以便 A 返回 Z 而 B 将返回 Y 等等。我在 Eclipse 中做了我的密码实验室,但它没有运行。我不确定我做错了什么。
public class CaesarCipher {
public static void main(String[] args) {
CaesarCipher cc = new CaesarCipher();
}
public static final int ALPHASIZE = 26;
public static final char [] alpha = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
protected char[] encrypt = new char[ALPHASIZE];
protected char[] decrypt = new char[ALPHASIZE];
public CaesarCipher() {
for (int i=0; i<ALPHASIZE; i++)
encrypt[i] = alpha[(i + 3) % ALPHASIZE];
for (int i=0; i<ALPHASIZE; i++)
decrypt[encrypt[i] - 'A'] = alpha[i];
}
/** Encryption Method */
public String encrypt(String secret) {
char[] mess = secret.toCharArray();
for (int i=0; i<mess.length; i++)
if (Character.isUpperCase(mess[i]))
mess[i] = encrypt[mess[i] - 'A'];
return new String(mess);
}
/** Decryption Method */
public String decrypt(String secret) {
char[] mess = secret.toCharArray();
for (int i=0; i<mess.length; i++)
if (Character.isUpperCase(mess[i]))
mess[i] = decrypt[mess[i] - 'A'];
return new String(mess);
}
}