Простейшая реализация шифра Цезаря на C
Debian-LabЧто такое Шифр Цезаря?
Это один из простейших методов шифрования, при котором каждый символ в обычном тексте заменяется символом на определенное фиксированное количество позиций до него.
Например, если ключ равен 3, то мы должны заменить символ другим символом, который находится на 3 позиции ниже. Например, A будет заменен на D, C будет заменен на F и так далее.
Для расшифровки просто выполните процедуру в обратном порядке.
Шифрование:
#include int main() { char message[100], ch; int i, key; printf("Enter a message to encrypt: "); gets(message); printf("Enter key: "); scanf("%d", &key); for(i = 0; message[i] != '\0'; ++i){ ch = message[i]; if(ch >= 'a' && ch <= 'z'){ ch = ch + key; if(ch > 'z'){ ch = ch - 'z' + 'a' - 1; } message[i] = ch; } else if(ch >= 'A' && ch <= 'Z'){ ch = ch + key; if(ch > 'Z'){ ch = ch - 'Z' + 'A' - 1; } message[i] = ch; } } printf("Encrypted message: %s", message); return 0; }
Дешифровка
#include int main() { char message[100], ch; int i, key; printf("Enter a message to decrypt: "); gets(message); printf("Enter key: "); scanf("%d", &key); for(i = 0; message[i] != '\0'; ++i){ ch = message[i]; if(ch >= 'a' && ch <= 'z'){ ch = ch - key; if(ch < 'a'){ ch = ch + 'z' - 'a' + 1; } message[i] = ch; } else if(ch >= 'A' && ch <= 'Z'){ ch = ch - key; if(ch < 'A'){ ch = ch + 'Z' - 'A' + 1; } message[i] = ch; } } printf("Decrypted message: %s", message); return 0; }
⏳ Наш основной канал - @debian_lab