Мой алгоритм шифра Виженера является оптимальным ?
Недавно я написал алгоритм, который шифрует одно слово в другое с помощью шифра вигенера, и я хочу знать, является ли он оптимальным.
Вот он код
#include <iostream> #include <string> #include <vector> using namespace std; char encodeur( char premiereLettre, char deuxiemeLettre) { int premiereChiffreLettre; int deuxiemeChiffreLettre; int lettreFiniChiffre; char lettreFini; int difference; premiereChiffreLettre = int(premiereLettre); deuxiemeChiffreLettre = int(deuxiemeLettre); lettreFiniChiffre = premiereChiffreLettre + (deuxiemeChiffreLettre - 97); if (lettreFiniChiffre > 122) { difference = lettreFiniChiffre - 123; lettreFiniChiffre = 97 + difference; } else { } lettreFini = char(lettreFiniChiffre); return lettreFini; } string encodeurMot(string mot, string motEncodeur) { int taille = mot.size(); int tailleMotEncodant = motEncodeur.size(); string motEncoder; char lettre; char lettreEncodant; char lettreEncoder; vector<char> tableau(taille); for(int i = 0, j = 0; i < taille;j++, i++) { if (j == tailleMotEncodant) { j = 0; } else { } lettre = mot[i]; lettreEncodant = motEncodeur[j]; lettreEncoder = encodeur(lettre , lettreEncodant); tableau[i] = lettreEncoder; motEncoder += tableau[i]; } return motEncoder; } int main() { string mot; string motEncodeur; string motEncoder; int onOff(1); while (onOff == 1) { cout << "what's the word you want to encrypt ?" << endl; cin >> mot; cout << "Thank you, now what's the word do you want to use for encryption ?" << endl; cin >> motEncodeur; motEncoder = encodeurMot(mot, motEncodeur); cout << motEncoder << endl; cout << "do you want to encrypt another word ?(0 for no, 1 for yes)" << endl; cin >> onOff; } return 0; }
извините за имена переменных, я француз.
Что я уже пробовал:
я постарался сделать его максимально оптимальным.