./encryptor.py encode --cipher {caesar|vigenere|vernam} --key {number|word} [--input-file input.txt] [--output-file output.txt]
Зашифровать входное сообщение.
--cipher - тип шифра: caesar (Шифр Цезаря), vigenere (Шифр Виженера), vernam (Шифр Вернама).
--key - ключ шифра. Для шифра Цезаря - число (или буква), соответствующее сдвигу, для шифра Виженера - слово, которое задает сдвиги (написано строчными буквами), аналогично шифр Вернам получает ключ, как слово.
--input-file (необязательный аргумент) - путь ко входному файлу с текстом. Если не указан, текст вводится с клавиатуры.
--output-file (необязательный аргумент) - путь к выходному файлу (файла может не быть, и тогда он создается). Если не указан, текст выводится в консоль.
./encryptor.py decode --cipher {caesar|vigenere|vernam} --key {number|word} [--input-file input.txt] [--output-file output.txt]
Расшифровать входное сообщение, зная шифр и ключ, с которым оно было зашифровано.
Аналогичны пункту 1. Шифрование.
./encryptor.py hack --cipher {caesar|vigenere} [--input-file input.txt] [--output-file output.txt] [--model-file {model}]
Попытаться расшифровать текст. Для шифра Цезаря - частотный анализ. Для Виженера - метод индекса совпадений.
--input-file (необязательный аргумент) - путь ко входному файлу с текстом. Если не указан, текст вводится с клавиатуры.
--output-file (необязательный аргумент) - путь к выходному файлу (файла может не быть, и тогда он создается). Если не указан, текст выводится в консоль.
--model-file - путь к файлу модели, которая будет использоваться (для частотного анализа и взлома шифра Цезаря). Этот аргумент необязателен для взлома шифра Виженера.