2016-10-15 3 views
-2

Цейсер-шифр не учитывает числа в шифровании. Как продлить его таким образом, чтобы он заменял каждую букву и число с номером, затем XOR каждый символ с ключом шифрования. Это код шифрования, который я написал до сих пор ... могу ли я знать, где я ошибаюсь .... вывод не является точным.Расширение расширителя цепей

string Encrypt (string s) 
{ 
    string cipher = s; 
    int size = s.length(); 

    for(int i = 0; i < size ; i++) 
    { 
     if(isalpha(cipher[i])) 
     { 
      int x = static_cast<int>(cipher[i]) ; //changing to ascii code 

      if ((x >= 88 && x <= 90) || (x >= 120 && x <= 122)) 
       x = x - 23; 
      else 
       x = x + 3; 

      cipher[i] = static_cast<char>(x); //changing back to ascii char 
      cipher[i] ^= 5;     // XOR with 5 
     } 
     else if(isdigit(cipher[i])) 
     { 
      int x = static_cast<int>(cipher[i]) ; 
      cout << x ; 

      if (x >= 55 && x <= 57) 
       x = x - 7; 
      else 
       x = x + 3; 

      cipher[i] = static_cast<char>(x); 
      cipher[i] ^= 5;                                    
     }  
    }  
    return cipher ; 
} 
+0

То, что вы описываете, больше не является цезарным шифром, так как оно реализовано полностью зависит от вас. – duskwuff

+0

Есть много людей, которые уже решили эту задачу. Вы пытались найти их решения, например? выполнив простой поиск? –

ответ

0

Вы можете следить за link о Ceaser шифра, и вы можете легко расширить его на USECASE. Просто замените номер на другой номер, используя ваш алгоритм (например, если это число, которое вы можете умножить на 2 и заменить) аналогичным образом сделайте это для символа. Затем вы можете расшифровать его, используя свою собственную логику.

+0

Что я хочу сделать, это заменить каждую букву на другую букву и заменить каждую цифру на другую цифру смещением 3 ..... я сделал только этот мух до сих пор ... но результат не точный. ..Но я не знаю, что я делаю неправильно –

+0

Я отредактировал вопрос @hariprasath –

Смежные вопросы