Méthode de César en cryptographie

nournina Messages postés 52 Date d'inscription dimanche 27 octobre 2013 Statut Membre Dernière intervention 17 juin 2014 - 28 oct. 2013 à 20:58
Whismeril Messages postés 17810 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 1 octobre 2022 - 1 nov. 2013 à 23:40
Bonjour,
je suis entraîne de faire une application de codage
elle sert à entrez un message et le programme que je doit le faire crypte ce message d'après la méthode de César
le problème que j'ai trouvé c'est quand j'entre le message dans le textBox comment j'indique q'il faut lire chaque caractère tout seule
merci et je m'excuse pour la langue j'attend votre réponse

9 réponses

Whismeril Messages postés 17810 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 1 octobre 2022 618
1 nov. 2013 à 16:23
Bonjour.

Normalement si tu as fait quelques recherches tu sais que Func déclare un délégué.
Si la notion de délégué est flous pour toi (moi j'ai eu du mal au début), on va dire qu'il s'agit d'une petite méthode que l'on mets dans une variable ou en paramètre d'une autre méthode.

Petit exemple , dans un tableau de string je cherche les mots qui contiennent "al":

        public List<string> ExempleDeleguate()
{
string[] tableau = {"mot","cheval","egal","latitude","altitude","laval"};
return tableau.Where(c => c.Contains("al")).ToList<string>();// ici quand j'ai tapé Where( VS m'a indiqué qu'il fallait que je mettes une fonction déléguée pour que le code sache ce que je cherche.
//j'ai donc mis c => c.Contains("al"), c représente chaque item de ma source de données (ici tableau), => signifie que la suite montre le critère de recherche
}



Ensuite tu as sans doute trouvé que '? :' est une façon d'écrire if then else
        public void ExempleOperateurConditionnel()
{
int i = 10;
int j = i < 20 ? 30 : 10;// si i < 20, alors j vaut 30 sinon, j vaut 10
}
1
khalidev Messages postés 5 Date d'inscription vendredi 1 novembre 2013 Statut Membre Dernière intervention 1 novembre 2013 1
1 nov. 2013 à 21:54
pour lire chaque caractere tout seul, tu declare une string en lui affectant la valeur de textbox et faire parcourir cette chaine avec la boucle foreach. ex:

string mot=textbox1.text;
foreach(char c in mot){
// le caratere c'est la valeur de c
}
1
Whismeril Messages postés 17810 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 1 octobre 2022 618
1 nov. 2013 à 23:29
Merci de penser à utiliser la coloration syntaxique, icône <>, préciser le langage : < code csharp>....</code>
0
nournina Messages postés 52 Date d'inscription dimanche 27 octobre 2013 Statut Membre Dernière intervention 17 juin 2014 1
1 nov. 2013 à 23:20
merci bien monsieur, tout jour je fait des essais mais pas de résultat , le code de dodo ou je l'écrit j'ai bien compris
1
Whismeril Messages postés 17810 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 1 octobre 2022 618
1 nov. 2013 à 23:40
Le code de Dodo est une méthode.

Tu dois la coller dans une classe, ou dans le code de ton formulaire.

Si tu as mis une Texbox et un bouton OK (ou Encoder peu importe), tu peux appeler cette méthode dans l'événement Click du bouton.
La signature de la méthode Cesar est : public string Cesar(string mot, int decalage), elle retourne donc un string et il lui faut deux paramètres, un
string (le mot à crypter) et un int (le décalage).
string motCrypte = Cesar(Textbox1.Text, 2);// je crée une variable motCrypte de type string et je lui affecte le résultat de la méthode Cesar du texte de ma TextBox avec un décalage de 2


Comme tu me semble très débutante, je te conseille la lecture de cette série de tutos.
1

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

Posez votre question
dodo7263 Messages postés 616 Date d'inscription mercredi 10 septembre 2008 Statut Membre Dernière intervention 9 février 2017 6
28 oct. 2013 à 22:42
salut,

Bon j'ai cherché pour toi sur internet pour toi voici une fonction :
public string Cesar(string mot, int decalage)
{
Func<int, int, int> mod = (val, m) => val % m + (val < 0 ? m : 0);

Func<char, char, int, char> decal =
(c, offset, m) => (char)(offset + mod(c - offset + decalage, m));

Func<char, char> cesar =
c => ('a' <= c && c <= 'z') ? decal(c, 'a', 26)
: ('A' <= c && c <= 'Z') ? decal(c, 'A', 26)
: ('0' <= c && c <= '9') ? decal(c, '0', 10)
: c;

return new string(mot.Select(cesar).ToArray());
}


a toi d'adapter pour ton cas bien sur....

@++
0
nournina Messages postés 52 Date d'inscription dimanche 27 octobre 2013 Statut Membre Dernière intervention 17 juin 2014 1
30 oct. 2013 à 20:41
merci bien mais sincèrement j'ai pas bien comprendre ce code parce que je suis débutante dans ce domaine, si vous voulez m'expliquer bien svp
0
Whismeril Messages postés 17810 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 1 octobre 2022 618
28 oct. 2013 à 22:42
Bonsoir,

le type string se comporte à certains égards comme un tableau de caractères (en lecture en tout cas).
string toto = "abcde";
char car0= toto[0];// car0 vaut 'a'
char car3= toto[3];// car" vaut 'd'

0
Whismeril Messages postés 17810 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 1 octobre 2022 618
30 oct. 2013 à 22:39
Bonsoir, tu as mis 2 jours à revenir à cette discussion, tu avais sans doute d'autres activité.
Il en va de même pour nous.


En attendant, tu peux copier coller le code de dodo et l'exécuter en pas à pas.
Tu peux aussi chercher les différents opérateurs et mot clé qu'il a utilisé.

Certes ce code n'est pas du niveau débutant, et chercher à le comprendre est une bonne chose.

Mais patiemment et ploiement.
0
Whismeril Messages postés 17810 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 1 octobre 2022 618
28 oct. 2013 à 22:47
Par contre, il n'était pas utile d'ouvrir une deuxième discussion, tu aurais pu continuer sur la première.
La prochaine fois, pense s y.
-1
dodo7263 Messages postés 616 Date d'inscription mercredi 10 septembre 2008 Statut Membre Dernière intervention 9 février 2017 6
28 oct. 2013 à 23:46
ah j'ai pas vu la première....
0
nournina Messages postés 52 Date d'inscription dimanche 27 octobre 2013 Statut Membre Dernière intervention 17 juin 2014 1
30 oct. 2013 à 21:09
je veut une explication svp
-1