Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Scanner;
- public class Vigenere {
- private static final String characters = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";
- private static final int N = characters.length();
- private static String encode(String input, String keyword)
- {
- char[] data = input.toUpperCase().toCharArray();
- char[] key = keyword.toUpperCase().toCharArray();
- String result = "";
- int key_pos = 0;
- for (int i = 0; i < data.length; i++)
- {
- if (data[i] == ' ')
- {
- result += " ";
- continue;
- }
- int p = (characters.indexOf(data[i]) +
- characters.indexOf(key[key_pos % key.length])) % N;
- key_pos++;
- result += characters.charAt(p);
- }
- return result;
- }
- private static String decode(String input, String keyword)
- {
- char[] data = input.toUpperCase().toCharArray();
- char[] key = keyword.toUpperCase().toCharArray();
- String result = "";
- int key_pos = 0;
- for (int i = 0; i < data.length; i++)
- {
- if (data[i] == ' ')
- {
- result += " ";
- continue;
- }
- int p = (characters.indexOf(data[i]) + N -
- characters.indexOf(key[key_pos % key.length])) % N;
- key_pos++;
- result += characters.charAt(p);
- }
- return result;
- }
- public static void main(String []args)
- {
- Scanner in = new Scanner(System.in);
- String input, key;
- while (true)
- {
- System.out.println("Введите текст для шифрования: ");
- input = in.nextLine();
- System.out.println("Введите ключ: ");
- key = in.nextLine();
- String cipher = encode(input, key);
- System.out.println("Зашифрованный текст: " + cipher);
- System.out.println("Расшифровка: " + decode(cipher, key));
- System.out.println("Продолжить [д/н]? ");
- if(in.nextLine().equalsIgnoreCase("н"))
- break;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement