I was inspired by "The Code Book". Explanation here!
VigenereCipherEncrypter.java
Here is a simple test:
VigenereCipherEncrypter.java
package biz.tugay.cipher.vigenere; public class VigenereCipherEncrypter { public final String vigenereCipher(final char[] clearText, final char[] key) { final StringBuilder stringBuilder = new StringBuilder(clearText.length); for (int i = 0; i < clearText.length; i++) { final char cipherRow = key[i % key.length]; char cipherChar = (char) (clearText[i] + (cipherRow - 'A')); if (cipherChar > 90) { cipherChar = (char) (cipherChar - ('Z' - 'A' + 1)); } stringBuilder.append(cipherChar); } return stringBuilder.toString(); } }
Here is a simple test:
import biz.tugay.cipher.vigenere.VigenereCipherEncrypter; public class Main { public static void main(String[] args) { String clearText = "ATTACKATDAWN"; String key = "LEMON"; final VigenereCipherEncrypter vigenereCipherEncrypter = new VigenereCipherEncrypter(); final String cipherText = vigenereCipherEncrypter.vigenereCipher(clearText.toCharArray(), key.toCharArray()); System.out.println(cipherText); // prints: LXFOPVEFRNHR } }