Cryptographie par substitution

Fermé
nomoooon Messages postés 1 Date d'inscription mercredi 17 janvier 2018 Statut Membre Dernière intervention 17 janvier 2018 - 17 janv. 2018 à 09:53
Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 - 17 janv. 2018 à 17:32
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

Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 101
17 janv. 2018 à 17:32
Bonjour,

la récupération de la clé est un peu compliquée, on veut lire la ligne, il suffit de faire
std::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ée
texte
est à chiffrer et pourtant on ne s'en sert nulle part.
0