Advertisement
Guest User

Untitled

a guest
Jun 17th, 2019
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.75 KB | None | 0 0
  1.  
  2. #include <iostream>
  3. #include <stdio.h>
  4. #include <time.h>
  5.  
  6. using namespace std;
  7.  
  8. void encryptCaesarWithShift(char* message, char* encryptedMessage,char* shift,char* letters) {
  9.     char newLetters[26];
  10.     int i, j;
  11.     int currentIndex = 1;
  12.     newLetters[0] = shift[0];
  13.     for (i = 1; i < 5; i++) {
  14.         if (newLetters[0] != shift[i] && newLetters[1] != shift[i] && newLetters[2] != shift[i] && newLetters[3] != shift[i] && newLetters[4] != shift[i]) {
  15.             newLetters[currentIndex] = shift[i];
  16.             currentIndex++;
  17.         }
  18.     }
  19.     for (i = 0; i < 26; i++) {
  20.         if (letters[i] != shift[0] && letters[i] != shift[1] && letters[i] != shift[2] && letters[i] != shift[3] && letters[i] != shift[4]) {
  21.             newLetters[currentIndex] = letters[i];
  22.             currentIndex++;
  23.         }
  24.  
  25.     }
  26.  
  27.     for (i = 0; message[i] != '\0'; ++i) {
  28.         if (message[i] == ' ') {
  29.             encryptedMessage[i] = ' ';
  30.         }
  31.         else {
  32.             encryptedMessage[i] = newLetters[0];
  33.             for (j = 0; message[i] != letters[j]; ++j) {
  34.                 encryptedMessage[i] = newLetters[j + 1];
  35.             }
  36.         }
  37.        
  38.     }
  39.     encryptedMessage[i] = '\0';
  40. }
  41.  
  42. void decryptCaesarWithShift(char* message, char* decryptedMessage, char* shift, char* letters) {
  43.     //printf("SHIFT : %s", shift);
  44.    
  45.    
  46.     char newLetters[26];
  47.     int i, j;
  48.     int currentIndex = 1;
  49.     newLetters[0] = shift[0];
  50.     for (i = 1; i < 5; i++) {
  51.         if (newLetters[0] != shift[i] && newLetters[1] != shift[i] && newLetters[2] != shift[i] && newLetters[3] != shift[i] && newLetters[4] != shift[i]) {
  52.             newLetters[currentIndex] = shift[i];
  53.             currentIndex++;
  54.         }
  55.  
  56.     }
  57.     for (i = 0; i < 26; i++) {
  58.         if (letters[i] != shift[0] && letters[i] != shift[1] && letters[i] != shift[2] && letters[i] != shift[3] && letters[i] != shift[4]) {
  59.             newLetters[currentIndex] = letters[i];
  60.             currentIndex++;
  61.         }
  62.        
  63.  
  64.     }
  65.     //printf("LIBRARY : %s", newLetters);
  66.     for (i = 0; message[i] != '\0'; ++i) {
  67.         if (message[i] == ' ') {
  68.             decryptedMessage[i] = ' ';
  69.         }
  70.         else {
  71.             decryptedMessage[i] = letters[0];
  72.             for (j = 0; message[i] != newLetters[j]; ++j) {
  73.                 decryptedMessage[i] = letters[j + 1];
  74.             }
  75.         }
  76.  
  77.     }
  78.     decryptedMessage[i] = '\0';
  79.     //printf("Decrypted: %s\n", decryptedMessage);
  80.  
  81. }
  82. int main()
  83. {
  84.     char letters[26] = { 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z' };
  85.     char shift[6];
  86.     char message[100];
  87.     char encryptedMessage[100];
  88.     char decryptedMessage[100];
  89.     char a, b, c,d,e;
  90.     int i;
  91.     int rightWord = 0;
  92.     printf("Enter a message to encrypt: \n");
  93.     gets_s(message);
  94.     do {
  95.         printf("Enter five letters long shift \n");
  96.         gets_s(shift);
  97.     } while (strlen(shift) != 5);
  98.  
  99.     encryptCaesarWithShift(message, encryptedMessage, shift, letters);
  100.     printf("%s", encryptedMessage);
  101.    
  102.     decryptCaesarWithShift(encryptedMessage, decryptedMessage, shift, letters);
  103.     printf("Decrypted: %s", decryptedMessage);
  104.     clock_t tStart = clock();
  105.  
  106.         for (a = 'a'; a <= 'z'; a++) {
  107.             for (b = 'a'; b <= 'z'; b++) {
  108.                 for (c = 'a'; c <= 'z'; c++) {
  109.                     for (d = 'a'; d <= 'z'; d++) {
  110.                         for (e = 'a';e <= 'z'; e++) {
  111.                             shift[0] = a;
  112.                             shift[1] = b;
  113.                             shift[2] = c;
  114.                             shift[3] = d;
  115.                             shift[4] = e;
  116.  
  117.                             decryptCaesarWithShift(encryptedMessage, decryptedMessage, shift, letters);
  118.                             for (i = 0; message[i] != '\0'; i++) {
  119.                                 if (message[i] == decryptedMessage[i]) {
  120.                                     rightWord = 1;
  121.                                 }
  122.                                 else {
  123.                                     rightWord = 0;
  124.                                     break;
  125.                                 }
  126.                             }
  127.                             if (rightWord == 1) {
  128.                                 printf("Znalazlem\n");
  129.                                 printf("%c%c%c%c%c\n", a, b, c, d, e);
  130.                                 printf("Decrypted message: %s\n", decryptedMessage);
  131.                                 rightWord = 0;
  132.                             }
  133.  
  134.                         }
  135.                     }
  136.  
  137.  
  138.                 }
  139.             }
  140.         }
  141.    
  142.     printf("Time taken: %.30fs\n", (double)(clock() - tStart) / CLOCKS_PER_SEC);
  143.     return 0;
  144. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement