Шифр Виженера

Рассмотрим следующий способ шифровки текста. Занумеруем все символы алфавита. Возьмём некоторое слово, которое назовём ключевым. Каждая буква шифруемого текста циклически сдвигается на количество символов, определяемое соответствующей буквой ключевого слова. Когда ключевое слово кончается, мы переходим к его началу.

Задача. Вводятся строка-алфавит и две непустые строки. Вторая строка содержит ключевое слово, а третья – текст, который нужно зашифровать. Необходимо зашифровать введённый текст и расшифровать результат. (Проверять, что ключевое слово и текст состоят только из символов алфавита, не нужно.)

Алгоритм кодирования

1. Установить указатель1 в начало кодового слова

2. Установить указатель2 в начало строки.

Пока не закончится исходная строка:

Получить новый номер символа = номеру символа строки+номер символа кодового слова (по модулю длины алфавита для случая переполнения)

Новая_строка[указатель2] = символ алфавита, соответствующий полученному номеру

Сдвинуть на 1 указатель1 (по модулю длины кодового слова)

Сдвинуть указатель2.

Раскодирование производится аналогично.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: