Как создать алфавит массива байтов из строки подстановки в Java?

#java #arrays #byte

#java #массивы #байт

Вопрос:

Мне нужно закодировать шифратор шифра подстановки. Однако я не могу понять, как создать алфавит из ключа доступа, чтобы он соответствовал обычному алфавиту, чтобы сгенерировать мое зашифрованное сообщение

Это должно дать что-то вроде так

 String passphrase = "mobile";
byte[] expected = {'m', 'o', 'b', 'i', 'l', 'e', 'a', 'c', 'd', 'f' ...};
  

Как я мог бы закодировать функцию, которая возвращает ожидаемый алфавит?

Ответ №1:

Кстати, вы действительно должны использовать char массив. Если вам действительно не нужен массив символов, просто преобразуйте все в byte.

 static char[] generateExpected(String passphrase) {
    char[] expected = new char[passphrase.length()   26];

    passphrase.getChars(0, passphrase.length(), expected, 0);

    for (int i = 0; i < 26; i  ) {
        expected[i   passphrase.length()] = (char) ('a'   i);
    }

    return expected;
}
  

Комментарии:

1. К сожалению, ради программы мне нужно использовать байты. И дело в том, что мне нужно заменить фразу-пароль из фактического алфавита. Таким образом, ожидаемый алфавит по-прежнему имеет размер 26. Например, если парольная фраза ‘xyz’, ожидаемый результат должен быть ‘xyzabcdefghijklmnopqrstuvw’