private String decrypting(String message) { int i = 0; while (message.substring(i, i + 1).compareTo(":") != 0 && i + 1 < message.length()) { i++; } i += 2; if (i + 2 >= message.length()) { return message; } String cMessage = message.substring(i); // System.out.println(cMessage); switch (cSelect) { case 0: return message.substring(0, i) + cMessage; case 1: return message.substring(0, i) + decryptCaesar(cMessage, Integer.parseInt(textFieldShift.getText())); case 2: vig.setKey(textFieldVigPass.getText()); return message.substring(0, i) + vig.decode(cMessage); case 3: tea.setKey(textFieldTEA.getText().getBytes()); return message.substring(0, i) + tea.decrypt(cMessage); case 4: return message.substring(0, i) + rsa.decrypt(cMessage); } return message; }
@Test public void decrypt() { String test = Vigenere.decrypt( ABC_BASE, ABC_CRYPT, ABC_KEY, "АЙЗРБ ГЬЧЦД ЗРБРБ УФАДБ ЭЫЗУБ ФУЪТС ЬУБРЭ Ъ"); Assert.assertEquals("ПОПРОБУЙТЕ ПРОЧИТАТЬ КРИПТОГРАММУ ТОЧКА".replaceAll(" ", ""), test); }
public String encode(String plain) { int period = key.length(); String key_u = key.toUpperCase(); String plain_u = plain.toUpperCase(); StringBuilder sb = new StringBuilder(); int kp = 0; for (int i = 0; i < plain_u.length(); i += period) { int end = i + period > plain_u.length() ? plain_u.length() : i + period; char kp_c = (char) (kp + 'A'); kp += progression_index; kp = kp % 26; for (int j = i; j < end; j++) { char k1 = key_u.charAt(j - i); char pt = plain_u.charAt(j); char c1 = Vigenere.get_vigenere_char(k1, pt); char c2 = Vigenere.get_vigenere_char(kp_c, c1); sb.append(c2); } } return sb.toString(); }
private String encrypting(String message) { switch (cSelect) { case 0: return message; case 1: // System.out.println("." + Integer.parseInt(textFieldShift.getText()) + "."); return encryptCaesar(message, Integer.parseInt(textFieldShift.getText())); case 2: vig.setKey(textFieldVigPass.getText()); return vig.encode(message); case 3: tea.setKey(textFieldTEA.getText().getBytes()); return tea.encrypt(message); case 4: if (waitingOnRSA) { return message; } else { return rsa.encryptOther(message); } } return message; }
@Test public void decryptSimple() { String test = Vigenere.decrypt(ABC_BASE, ABC_CRYPT, "А", "ЪПЪЫП УОГЮЯ ЪЫПТК ЮЗЮХЛ ЫКЪЮП ВЫЗММ ОЮПТЛ З"); Assert.assertEquals("ПОПРОБУЙТЕ ПРОЧИТАТЬ КРИПТОГРАММУ ТОЧКА".replaceAll(" ", ""), test); }