Признаюсь заранее, я не знаком с шифром XOR.
Однако, похоже, он очень похож на концепцию шифра Vigenere.Особенно в строке, где они упоминают о неразрушимом шифровании, длина ключа равна длине сообщения.Это крик Вернама Шифра.
Как уже упоминалось в другом ответе, стратегический подход к взлому шифровального шифра включает в себя вероятностный подход.Я не буду вдаваться в подробности, потому что большая часть теории, которую я выучил, была относительно сложной, но ее можно найти здесь , имея в виду, что vignere - это серия кесаревых шифров.
Проблема состоит в том, чтоэто легко для вас, потому что вы уже знаете длину ключа.Из-за этого, как вы упомянули, вы можете просто перебор, пробуя каждую трехбуквенную комбинацию.
Вот что я хотел бы сделать: взять кусок зашифрованного текста разумного размера, скажем, может быть, 10-20 символов, и попробовать на этом подход грубой силы.Отслеживайте все ключи, которые, кажется, создают понятные последовательности букв, а затем используйте их во всем зашифрованном тексте.Таким образом, мы можем использовать очевидный метод грубого принуждения, но без грубого решения всей проблемы, поэтому я не думаю, что вам придется беспокоиться об ограничении вывода.
Тем не менее, я согласен, что, когда вы создаете вывод, если вы когда-нибудь получите непечатаемый символ, вы, вероятно, можете разорвать ваш цикл и перейти к следующей клавише.Я не стал бы пытаться что-то более конкретное, чем это, потому что, кто знает, что может иметь исходное сообщение, никогда не делайте предположений относительно данных, с которыми вы имеете дело.Подобная логика короткого замыкания всегда является хорошей идеей, особенно при реализации решения методом перебора.