Шифр Полибия (Реализация на Java)

Java   8 июня 2012  Автор статьи:  

В данной статье я покажу один способ шифрования на основе квадрата Полибия. Он будет основан на том, что каждому символу из квадрата Полибия будут соответствовать два числа: номер строки и номер столбца. Так как можно предположить, что скорей всего эти номера будут не превосходить 256, то будем использовать массив байт для хранения зашифрованного сообщения. Ключом в нашем случае уже готовый квадрат Полибия. Для корректности работы алгоритма в ключе должны быть перечислены все символы, которые есть в тексте, который мы хотим зашифровать.

public class Polibiy {
public byte[] encrypt(String text, char[][] matr) {
byte[] ans = new byte[text.length() * 2];
for (int c = 0; c < text.length(); c++) { //поиск совпадения for (int i = 0; i < matr.length; i++) { for (int j = 0; j < matr[i].length; j++) { if (matr[i][j] == text.charAt(c)) { ans[c * 2] = (byte) i; ans[c * 2 + 1] = (byte) j; } } } } return ans; } public String decrypt(byte[] text, char [][] matr){ StringBuilder s = new StringBuilder(); for(int i = 0; i < text.length / 2; i++) { s.append(matr[text[i*2]][text[i*2+1]]);//восстановления символа } return s.toString(); } }

Научиться программировать

  • на Delphi

  • на Java

  • на C++