IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

c# méthode césar


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4
    Par défaut c# méthode césar
    bonjour à tous !!
    je suis nouvelle ici j'aimerais savoir si quelqu'un peut m'aider ?
    j'ai réussi à crypter mais je n'arrive pas à décrypter si quelqu'un à une idée! sa serait cool
    merci ^^

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    namespace projetcsharpcesar
    {
        public partial class Form1 : Form
        {
     
            public Form1()
            {
                InitializeComponent();
            }
            private void button1_Click(object sender, EventArgs e)
            {
                char entreC;
                int clef = 8;/*c'est la clef qui sert au cryptage*/
                entreC = richTextBox1.Text.ToCharArray()[0];
                int resultatcry = (entreC + clef)%256;
                richTextBox2.Text = resultatcry.ToString();  
            }
     
            private void button2_Click(object sender, EventArgs e)
            {
                char entreC;
                int clef= 8;
                entreC = richTextBox1.Text.ToCharArray()[0];
                int resultatdécry = (entreC - clef) * 256;
                richTextBox3.Text = resultatdécry.ToString();
            }
    Voici mon code pour crypter

  2. #2
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    C'est koi le problème :
    Cela ne décrypte pas la bonne valeur ? Ou cela provoque une erreur ?

    Note : Pour le code, met le entre des balises de code (bouton # de l'éditeur de texte).

  3. #3
    Futur Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4
    Par défaut
    je n'arrive pas à décrypté enfin à retrouver la valeur du début.

    désolé pour le code je vais faire attention pour la prochaine fois

    le bouton 1 c'est mon cryptage

    et le bouton 2 c'est une de mes idées nulle pour retrouver ma valeur

  4. #4
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Bah c'est normal, tu lui demande d'afficher ton int, alors il afficher une chaine de caractère correspondant au chiffre : Si 124 affiche 124.
    Il faut que tu convertisse ton int en string via une méthode qui utilises la table ascii.
    Pour cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char c = Convert.ToChar(64);
    En fait le code de ton deuxième bouton devrait être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    string entreC;
    int clef = 8;
    entreC = richTextBox2.Text;
    int resultatdécry = (Convert.ToInt32(entreC) - clef);
    richTextBox3.Text = Convert.ToChar(resultatdécry).ToString();
    Pourquoi ?
    1) Dans le deuxième texte boxe il faut tout récupérer, pas juste le premier charactère de ton résultat. Avec ton ancien code tu ne récupérer que le premier chiffre et non le nombre.
    2) Faut convertir le string en int -> Convert.ToInt32 Très utile la classe Convert
    3) Pourquoi ne pas multiplier par 256 ? Ok quand tu passes par des char mais comme là je suis passe par des stings je l'ai enlevé.
    4) Ensuite il faut utiliser Convert.Tochar()

    Il ne te reste plus qu'à modifier le premier bouton pour prendre plus qu'un char, mais une chaine de caractère entière.
    Je te laisse faire cela

  5. #5
    Futur Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4
    Par défaut OUF sa marche :)
    merci pour ton aide,
    j'avais fais un tableau pour essayer d'inserer une boucle pour traduire chaque case de mon tableau par contre j'ai un soucis ou dans le décryptage ou dans le cryptage. Tu aurais une idée pour moi ? resté sur le tableau avec la boucle ou partir sur une autre solution j'ai encore un peu de mal avec l'algo ^^

    dans l'objectif de ne plus traduire une seul lettre mais un vrai texte

  6. #6
    Membre Expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    public char coder(char entreC)
                int clef = 8;/*c'est la clef qui sert au cryptage*/
                entreC = richTextBox1.Text.ToCharArray()[0];
                int resultatcry = (entreC + clef)%256;
                return resultatcry.ToString()[0];
    }
     
    public char[] coder(char[] aCoder)
    {
    if(aCoder==null) return null;
    char[] toReturn = new char[aCoder.length];
            for(int i = 0 ; i < aCoder.length ; i++)
           {
                  toReturn[i] = coder(aCoder[i]);
            }
          return toReturn;
    }
    ?

  7. #7
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    La solution de hed62 m'a l'air pas mal.
    J'ai essaye de faire le programme en partant de l'idée de départ que je t'ai proposé mais ce n'est pas terrible.
    En fait tout dépend si tu veut cryper char en rajoutant une valeur, ou l'enssemble de la chaine ?
    Le mieux est de crypter chaque char et de le stockes dans un tableau ou une liste.

Discussions similaires

  1. Cryptage selon la méthode de César
    Par gege2061 dans le forum Télécharger
    Réponses: 7
    Dernier message: 05/07/2016, 13h38
  2. cryptage d'un fichier par la méthode césar
    Par wedge.tm dans le forum C
    Réponses: 6
    Dernier message: 12/01/2007, 16h08
  3. [Singleton] Différences avec méthodes statiques
    Par Franche dans le forum Design Patterns
    Réponses: 1
    Dernier message: 26/02/2003, 17h10
  4. Probleme d'impression avec la méthode TForm->Print()
    Par Kid Icarus dans le forum C++Builder
    Réponses: 13
    Dernier message: 31/07/2002, 14h26
  5. Cryptage en C selon la méthode de césat
    Par shenron dans le forum C
    Réponses: 2
    Dernier message: 31/05/2002, 08h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo