Простейшая реализация шифра Цезаря на C

Простейшая реализация шифра Цезаря на 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

Report Page