Programme crypte xor probleme
poupoule85
-
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
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:
- Programme crypte xor probleme
- Programme demarrage windows - Guide
- Programme word gratuit - Guide
- Message programmé - Guide
- Programme bonjour ✓ - Forum Logiciels
- Mettre en veille un programme - Guide
7 réponses
Voici un exemple fonctionnel que je viens de te faire, à toi d'adapter :
Cdlt
#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
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.
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.
merci de ta reponse mais j'ai essayer avec d'autre mots mais toujours aucun resultat :(
je ne comprend pas mon erreur.
je ne comprend pas mon erreur.
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.
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci bcp de ta reponse on sent la personne qui s'y connait bien, en effet un exemple serait simpa et tres apreciable merci!!!!!