解决方法
这是Vigenere密码类,你可以使用它,只需调用加密和解密函数:
代码来自 Rosetta Code.
代码来自 Rosetta Code.
public class VigenereCipher { public static void main(String[] args) { String key = "VIGENERECIPHER"; String ori = "Beware the Jabberwock,my son! The jaws that bite,the claws that catch!"; String enc = encrypt(ori,key); System.out.println(enc); System.out.println(decrypt(enc,key)); } static String encrypt(String text,final String key) { String res = ""; text = text.toUpperCase(); for (int i = 0,j = 0; i < text.length(); i++) { char c = text.charAt(i); if (c < 'A' || c > 'Z') continue; res += (char)((c + key.charAt(j) - 2 * 'A') % 26 + 'A'); j = ++j % key.length(); } return res; } static String decrypt(String text,j = 0; i < text.length(); i++) { char c = text.charAt(i); if (c < 'A' || c > 'Z') continue; res += (char)((c - key.charAt(j) + 26) % 26 + 'A'); j = ++j % key.length(); } return res; } }