Programme crypte xor probleme

poupoule85 -  
 poupoule85 -
Bonjour,
je debute en programmation et j'ai tenter de codé un petit programme de crypte en C, seulement il compile bien mais ne me renvoi pas de resultat lorsque je l'execute alors qu'il devrait m'envoyer une chaine ou figure mon texte en crypter.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void crypte( char *texte, char *password);

int main()
{
char texte[100]="oooooooooo";
char password[100] = "okijuhygtf";

crypte(texte , password);

return 0;
}

void crypte( char *texte, char *password)
{
int i;
int i2;
i2 = 0;

char texte_crypter[100]={0};

for (i=0 ;i<strlen(texte) ; i++)
{
texte_crypter[i]=texte[i]^password[i2];
i2++;

if (i2 == strlen(password))
{
i2=0;
}

}

printf("la chaine crypter est : %s \n", texte_crypter);
}

merci d'avance
A voir également:

7 réponses

fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   1 847
 
Voici un exemple fonctionnel que je viens de te faire, à toi d'adapter :
#include <stdio.h>
#include <string.h>

void chiffreXor(char *const mot, const char *const cle) {
    int i=0;
    char *ptr=mot;

    while(*ptr) {
        *(ptr++)^=cle[i];
        i=(i+1)%strlen(cle);
    }
}

void affich(const char*const mot,const size_t sz) {
    size_t i;

    if(sz-1)
        for(i=0;i<sz-1;i++)
            printf("%03d ",mot[i]);

    putchar('\n');
}

int main(void) {
    char mot[]="coucou";
    const char *const cle="cle";

    affich(mot,sizeof mot);
    chiffreXor(mot,cle);
    affich(mot,sizeof mot);

    return 0;
}


Cdlt
1
loupius
 
Hé oui, je ne sais pas si le programme est correct mais le résultat ne me surprends pas:
x xor x donne toujours 0 et comme par hasard, en C, c'est le caractère de fin de chaîne !!!
Tu as pris l'exemple qu'il ne fallait pas prendre mais ceci à l'avantage de démontrer que la méthode n'est pas adéquate...
Bonne continuation.
0
poupoule85
 
merci de ta reponse mais j'ai essayer avec d'autre mots mais toujours aucun resultat :(
je ne comprend pas mon erreur.
0
fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   1 847
 
Au lieu d'afficher le mot, tu devrais afficher leur code ascii parce qu'il en existe des codes non imprimables.
Dans ce cas, tu devrais passer le sizeof de la taille du tableau en paramètre et par conséquent ajuster la taille du tableau (texte_crypte) à la bonne longueur.

Si tu veux un exemple, n'hésite pas à demander.
0

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

Posez votre question
poupoule85
 
Merci bcp de ta reponse on sent la personne qui s'y connait bien, en effet un exemple serait simpa et tres apreciable merci!!!!!
0
poupoule85
 
Merci bcp c'est super!!!!
Nikel je pouvais pas trouver mieux.
c'est cool les fofo ou les gens reponde vite et bien ;)

Bonne journée
0
poupoule85
 
euh oui c'est fonctionnel mais je ne comprend pas tous le code.
je vais essayer de voir sa...
notament quand tu met const char *const cle
je ne savais pas que l'on pouvait faire const char *const
0