probleme avec fonction de crypto
Bonjour ,
Je suis débutant en C et j'ai actuellement un problème avec ma fonction de cryptologie , en effet elle rajoute des caractères ...
Voici le code source :
Code:
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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define PASSWORD "frere"
char* crypte(char* line)
{
int k = 0;
int i = 0;
char* cypher;
cypher = malloc( sizeof(char) * strlen(line));
if( cypher == NULL )
return NULL;
printf("len line = %d\n",strlen(line));
while(1)
{
if(line[k] == '\0' )
break;
else
{
if(PASSWORD[i] == '\0')
i = 0;
printf("line[%d] = %c\n",k,line[k]);
cypher[k] = line[k] ^ PASSWORD[i];
printf("cypher[%d] = %c\n",k,cypher[k]);
printf("len cypher = %d\n",strlen(cypher));
}
i++;
k++;
}
printf("len cypher = %d\n",strlen(cypher));
printf("cypher = %s\n\n",cypher);
cypher[k]='\0';
return cypher;
} |
et quand je l'utilise dans le main avec par exemple :
crypte(crypte("0"));
la console me dit :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| len line = 1
line[0] = 0
cypher[0] = V
len cypher = 1
len cypher = 1
cypher = V
len line = 1
line[0] = V
cypher[0] = 0
len cypher = 3
len cypher = 3
cypher = 0♣= |
Enfin le truc vert c'est le symbole de "pique" ( ♣ ) dans la console mais la balise code le remet en normal apparament , par contre ça marche avec 010 ou aba mais pas 001 ou 000001010 ... :evilred:
Donc je comprend pas pourquoi cypher voit sa taille augmentée et pourquoi sa marche avec les string de 3 caracteres .. :aie:
Merci d'avance !:king: