Cryptographie par substitution
Bonjour, j'essaye de finir un tp de openclassroom mais je suis bloqué, le principe est simple il faut que lorsque je rentre mon text dans la partie texte de mon code c++, sa change les lettres par les lettres d'un fichier "cle.txt" les lettres dans cle.txt sont positionné comme ça "AB BC CD DE..." en gros A se change en B B en C etc..., bon je vous met mon code déjà commencé.
#include <iostream>
#include <string>
#include <iterator>
#include <fstream>
using namespace std;
int main()
{
// Le message a crypter
string texte("aaa");
// Demande de la cle a l'utilisateur
cout << "Quel fichier contenant la cle voulez-vous utiliser ? ";
string nomFichier;
cin >> nomFichier;
ifstream fichier(nomFichier);
istream_iterator<char> it(fichier);
istream_iterator<char> end;
string a;
while (it != end)
{
a.push_back(*it);
++it;
}
for (int i =0; i < a.size(); i++)
{
if (i%2 == 0)
{
a[i] = a[i+1];
}
cout << a[i];
}
return 0;
}
1 réponse
-
Bonjour,
la récupération de la clé est un peu compliquée, on veut lire la ligne, il suffit de fairestd::getline(fichier,a);
.
Pour le chiffrage, un caractère sur 3 est la valeur initiale, le suivant est sa modification, puis un espace séparateur existe. Il ne devrait pas y avoir de modulo 2 mais plutôt un modulo 3 quelque part.
La chaîne nomméetexte
est à chiffrer et pourtant on ne s'en sert nulle part.