Я пишу программу для Vigenere Cipher. Но я не знаю, как сделать мой ключевой повтор до конца моего обычного текста. Прямо сейчас, что мой код делает, шифруются только буквы, которые эквивалентны числу букв, которые имеет мой ключ. Например, я вводил ключ «собака», и мой простой текст «catdog», он дает мне зашифрованный текст «fozdyw». Это означает, что он шифрует только первые три буквы.Как закодировать мой ключ в Vigenere Cipher
Это немного моего кода, который делает шифрование:
for (int j=0, k=0; j < strlen(text); j++, k++)
{
if((text[j] >= 'A') && (text[j] <= 'Z'))
text[j] = ((text[j] -'A') + key[k]) % 26 +'A';
if((text[j] >= 'a') && (text[j] <= 'z'))
text[j] = ((text[j] -'a') + key[k]) % 26 +'a';
printf("%c", text[j]);
}
Что я делаю неправильно? И что должно быть правильно?
Ну ... вы, кажется, знаете о модуле оператора. Подумайте об использовании этого для этого тоже ... – dmckee