Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <stdio.h>
- #include <time.h>
- using namespace std;
- void encryptCaesarWithShift(char* message, char* encryptedMessage,char* shift,char* letters) {
- char newLetters[26];
- int i, j;
- int currentIndex = 1;
- newLetters[0] = shift[0];
- for (i = 1; i < 5; i++) {
- if (newLetters[0] != shift[i] && newLetters[1] != shift[i] && newLetters[2] != shift[i] && newLetters[3] != shift[i] && newLetters[4] != shift[i]) {
- newLetters[currentIndex] = shift[i];
- currentIndex++;
- }
- }
- for (i = 0; i < 26; i++) {
- if (letters[i] != shift[0] && letters[i] != shift[1] && letters[i] != shift[2] && letters[i] != shift[3] && letters[i] != shift[4]) {
- newLetters[currentIndex] = letters[i];
- currentIndex++;
- }
- }
- for (i = 0; message[i] != '\0'; ++i) {
- if (message[i] == ' ') {
- encryptedMessage[i] = ' ';
- }
- else {
- encryptedMessage[i] = newLetters[0];
- for (j = 0; message[i] != letters[j]; ++j) {
- encryptedMessage[i] = newLetters[j + 1];
- }
- }
- }
- encryptedMessage[i] = '\0';
- }
- void decryptCaesarWithShift(char* message, char* decryptedMessage, char* shift, char* letters) {
- //printf("SHIFT : %s", shift);
- char newLetters[26];
- int i, j;
- int currentIndex = 1;
- newLetters[0] = shift[0];
- for (i = 1; i < 5; i++) {
- if (newLetters[0] != shift[i] && newLetters[1] != shift[i] && newLetters[2] != shift[i] && newLetters[3] != shift[i] && newLetters[4] != shift[i]) {
- newLetters[currentIndex] = shift[i];
- currentIndex++;
- }
- }
- for (i = 0; i < 26; i++) {
- if (letters[i] != shift[0] && letters[i] != shift[1] && letters[i] != shift[2] && letters[i] != shift[3] && letters[i] != shift[4]) {
- newLetters[currentIndex] = letters[i];
- currentIndex++;
- }
- }
- //printf("LIBRARY : %s", newLetters);
- for (i = 0; message[i] != '\0'; ++i) {
- if (message[i] == ' ') {
- decryptedMessage[i] = ' ';
- }
- else {
- decryptedMessage[i] = letters[0];
- for (j = 0; message[i] != newLetters[j]; ++j) {
- decryptedMessage[i] = letters[j + 1];
- }
- }
- }
- decryptedMessage[i] = '\0';
- //printf("Decrypted: %s\n", decryptedMessage);
- }
- int main()
- {
- 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' };
- char shift[6];
- char message[100];
- char encryptedMessage[100];
- char decryptedMessage[100];
- char a, b, c,d,e;
- int i;
- int rightWord = 0;
- printf("Enter a message to encrypt: \n");
- gets_s(message);
- do {
- printf("Enter five letters long shift \n");
- gets_s(shift);
- } while (strlen(shift) != 5);
- encryptCaesarWithShift(message, encryptedMessage, shift, letters);
- printf("%s", encryptedMessage);
- decryptCaesarWithShift(encryptedMessage, decryptedMessage, shift, letters);
- printf("Decrypted: %s", decryptedMessage);
- clock_t tStart = clock();
- for (a = 'a'; a <= 'z'; a++) {
- for (b = 'a'; b <= 'z'; b++) {
- for (c = 'a'; c <= 'z'; c++) {
- for (d = 'a'; d <= 'z'; d++) {
- for (e = 'a';e <= 'z'; e++) {
- shift[0] = a;
- shift[1] = b;
- shift[2] = c;
- shift[3] = d;
- shift[4] = e;
- decryptCaesarWithShift(encryptedMessage, decryptedMessage, shift, letters);
- for (i = 0; message[i] != '\0'; i++) {
- if (message[i] == decryptedMessage[i]) {
- rightWord = 1;
- }
- else {
- rightWord = 0;
- break;
- }
- }
- if (rightWord == 1) {
- printf("Znalazlem\n");
- printf("%c%c%c%c%c\n", a, b, c, d, e);
- printf("Decrypted message: %s\n", decryptedMessage);
- rightWord = 0;
- }
- }
- }
- }
- }
- }
- printf("Time taken: %.30fs\n", (double)(clock() - tStart) / CLOCKS_PER_SEC);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement