Cryptage

Résolu
DarkC0 Messages postés 51 Date d'inscription dimanche 13 mars 2011 Statut Membre Dernière intervention 11 septembre 2011 - 1 sept. 2011 à 11:20
DarkC0 Messages postés 51 Date d'inscription dimanche 13 mars 2011 Statut Membre Dernière intervention 11 septembre 2011 - 11 sept. 2011 à 08:37
Bonjour tous le monde...

Voilà depuis une semaine je créer un programme de cryptage et décryptage de messages, enfin disons plutôt que le programme remplace les lettres et caractères par d'autres.

Mon problème se trouve dans ma fonction qui scanne ce que l'utilisateur entre au clavier, d'abord je lui demande de taper son message et pour cela j'ai fait une boucle do...while et ensuite lorsqu'il tape "exit", la boucle doit s'arrêter pour ensuite retourner au menu principale.

J'ai essayé plein de choses mais rien y fait, donc je vous met le morceau de code et je continue à chercher en attendant :

/*!
** Titre : Crypt_0/cryptage/main_Crypt.
**
** Langage : C++.
**
** Logiciel : CodeBlocks.
**
*/

#include
#include <string>
#include <conio.h>
#include <fstream>
#include <windows.h>
#include "crypt.h"

void cryptage()
{
system ("cls");
std::string MsgCrypt;

Color(8);
std::cout << " ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»" << std::endl
<< " º º" << std::endl
<< " º Crypt_0 by D@rkC0 º" << std::endl
<< " º ____________________________________________ º" << std::endl
<< " º º" << std::endl
<< " º > Cryptage d'un message ... º" << std::endl
<< " º º" << std::endl
<< " ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ" << std::endl;


do{
std::cout << std::endl;
Color(10);std::cout << ">"; Color(15);getline (std::cin, MsgCrypt); // getline : Pour gérer les espaces entre les mots.

Crypt_Lmin(MsgCrypt); //Fonction pour remplacer les lettres minuscules !!!
Crypt_Lmaj(MsgCrypt); //Fonction pour remplacer les lettres majuscules !!!
Crypt_Symb(MsgCrypt); //Fonction pour remplacer les lettres symboles ( ? . : , )!!!

enregistrement_Crypt(MsgCrypt); //Fonction pour enregistrer le messages crypté au format txt !!!

}while(MsgCrypt!="exit");

menu(); //Fonction pour retourner au menu !!!
}

11 réponses

DarkC0 Messages postés 51 Date d'inscription dimanche 13 mars 2011 Statut Membre Dernière intervention 11 septembre 2011 4
11 sept. 2011 à 08:37
Ah oui, désolée.

Voici la solution :

Comme la boucle que j'ai faite pour crypter le texte ne s'arrête jamais, j'ai donc utilisé un while(MsgCrypt!="fin");
Et donc lorsque je tape "fin" la boucle doit s'arrêter mais le problème c'est qu'en tapant "fin" le programme crypte ce mot et donc le while(); ne le reconnait plus.
Il suffisait donc de mettre le mot "fin" en format crypté, lorsque l’on veut décrypter un texte.
Et lorsque l’on veut décrypter un texte, il faut laisser le mot "fin" au format normal dans la boucle while();

La solution était d’écrire ceci dans le while : while(MsgCrypt!="=4}");

Evidement ce n’est pas une solution vraiment correcte d’autant que mon code n’est pas très bien fait mais au moins j’ai réussi à comprendre le problème.
3
cptpingu Messages postés 3835 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 1 novembre 2022 124
1 sept. 2011 à 12:09
Heu ? Si tu "chiffres" ton MsgCrypt, alors il n'y a plus marqué "exit", donc tu ne peux plus quitter, non ?
C'est une étrange manière de faire en tout cas.

Pense à mettre ton code dans des balises de code ! C'est dur à lire sinon.

- On dit chiffrement, et non cryptage qui ne veut rien dire.

A ce sujet, voici ce que répond l'Académie française (courrier reçu le mardi 6 avril 2004) :
Monsieur,

L'action qui consiste à coder un texte s'appelle le chiffrement ou le chiffrage. Le verbe
correspondant est chiffrer. Encryption est effectivement un anglicisme à bannir. Crypter ne
figure pas dans le Dictionnaire de l'Académie française, mais se trouve dans de nombreux
usuels. Ce qui n'empêche pas que c'est chiffrer qui doit être employé.

Cela étant, il semble que crypter trouve sa place et son rôle, surtout au passif, quand
il s'agit de désigner des chaînes nécessitant un décodeur pour être reçues en clair.
En résumé on chiffre les messages et on crypte les chaînes.

Cordialement,

Service du dictionnaire <dictionnaire@academie-francaise.fr>

- Tu ne devais pas avoir de fonction pour retourner au menu. Tu dois le mettre dans ton main, et l'appeler correctement.

Difficile de t'aider plus avec aussi peu de code. Je t'invite à faire la chose suivante:
- Nettoie ton code (stp vire tous les Color, les system, conio.h, windows.h, etc...). Tous ce qui est inutile en fait, et qui m'empêche de compiler sous Linux.
- Poste moi dans tes balises de code, tous tes fichiers (nettoyés).

Ça me permettra de te voir par moi même ce qui ne vas pas.

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
0
DarkC0 Messages postés 51 Date d'inscription dimanche 13 mars 2011 Statut Membre Dernière intervention 11 septembre 2011 4
1 sept. 2011 à 12:32
Ah oui, c'est vrais que sur Linux ce n'est pas la même chose.
Eh bien je vais nettoyer tous ça, par contre je ne comprend ce que tu veut dire par "Poste moi dans tes balises de code,..."
0
cptpingu Messages postés 3835 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 1 novembre 2022 124
1 sept. 2011 à 13:12
Sur le forum, il y a des balises de code.
Ex:
do
{
  std::cout << std::endl;
  Color(10);std::cout << ">";
  Color(15);getline (std::cin, MsgCrypt); // getline : Pour gérer les espaces entre les mots.

  Crypt_Lmin(MsgCrypt); //Fonction pour remplacer les lettres minuscules !!!
  Crypt_Lmaj(MsgCrypt); //Fonction pour remplacer les lettres majuscules !!!
  Crypt_Symb(MsgCrypt); //Fonction pour remplacer les lettres symboles ( ? . : , )!!!

  enregistrement_Crypt(MsgCrypt); //Fonction pour enregistrer le messages crypté au format txt !!!

}
while(MsgCrypt!="exit");


C'est quand même plus lisible, non ?

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
1 sept. 2011 à 17:43
Merci de préciser pour le mot cryptage (que j'utilise souvent, à chaque fois qu'il s'agit de cryptage, heu chiffrement pardon). J'ai du mal à comprendre le sens de votre phrase "qui ne veux rien dire", car j'ai toujours associer la définition du mot chiffrement à cryptage, un peu comme un alias, donc pour moi et beaucoup d'autres il possède bien une signification. Bon ok peut être pas au sens littérale, mais dans ce cas il faudrait dire "qu'il ne veux rien signifier", car c'est sur que cryptage ça ne "dis" rien, au sens propre. Je pourrais continuer comme ça des heures :)

@DarkC0: Sur cppfrance et delphifr il y a pas mal d'exemple de cryptage/chiffrement. Vous devriez allez y faire un tour.

Romain
0
cptpingu Messages postés 3835 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 1 novembre 2022 124
1 sept. 2011 à 17:50
Ce n'est pas que ça ne veut rien dire. Chiffrement et cryptage ont un sens différent et faire l'amalgame est assez pénible car ce n'est pas la même chose.

C'est simple:
- Chiffrement: Rendre une donnée incompréhensible à l'aide d'une clé connue.
- Déchiffrement: Rendre une donnée compréhensible à l'aide d'une clé connue.
- Décryptage: Rendre une donnée compréhensible sans connaître la clé.
- Cryptage: Rendre une donnée incompréhensible sans connaître la clé ? Donc en gros, tu fermes les yeux avant de chiffrer une donné, c'est du cryptage. Parce que tu ne pourras que le décrypter, pas le déchiffrer. L'intérêt est tout de même assez limité...

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
0
Utilisateur anonyme
1 sept. 2011 à 18:06
La nuance est vraiment petite en effet. Décrypter, c'est faire du brut force sur sur chiffrement pour le déchiffrer en gros. Et crypter c'est chiffré "au pif". Oulala ce que je déteste ce genre de nuance (ce n'est pas du tout contre vous que je dis ça, attention) C'est comme Bogue et bug, mail et mél, et toute ces conneries. Pourquoi ils n'ont pas renommé le ketchup, kaitchupe, ou kétchoupe. Et les hamburger, Ambeurgueur. Vous saisissez :)

Cordialement

Romain
0
cptpingu Messages postés 3835 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 1 novembre 2022 124
1 sept. 2011 à 18:12
En fait, on a toujours parler de chiffrement, et ce depuis très longtemps. Malheureusement, dans les années 80, Canal+ s'est trompé et appelé sa chaine "la chaîne cryptée" (Ce ne sont pas des experts en sécurité, mais des marketeux qui ont choisi le nom...) Cette erreur est restée, et à moins d'avoir travaillé un minimum sur de la cryptographie, il est difficile de ne pas se tromper.

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
0
DarkC0 Messages postés 51 Date d'inscription dimanche 13 mars 2011 Statut Membre Dernière intervention 11 septembre 2011 4
1 sept. 2011 à 20:32
Merci pour ces précisions, je vais faire tous ça demain.

Bonne soirée à tous.
0
DarkC0 Messages postés 51 Date d'inscription dimanche 13 mars 2011 Statut Membre Dernière intervention 11 septembre 2011 4
2 sept. 2011 à 08:57
Bonjour tous le monde,

finalement j'ai réussie à trouver la solution :D
Sans doute que ce n'est pas la meilleur mais elle fonctionne.
De toute façon j'ai l'intention d'améliorer mon programme.

En tous cas merci pour vos conseils.
0
Utilisateur anonyme
10 sept. 2011 à 22:26
Pense dans ce cas à cliquer sur le bouton "Réponse acceptée" de ton dernier post.

Et pour ceux qui peuvent être dans le même cas que toi, décris un petit peu comment tu as fait pour résoudre ton problème.

Cdlt

--
Pylouq
0