| _ky_ | hello,  j'ai un pitit problème sur un programme:
 
 le but du prog, est d'ouvrir un fichier, de le crypter et de mettre le resultat dans un autre fichier.
 une autre fonction fait le travail inverse (ouvre le fichier illisible, le decrypte et le met dans un troisieme fichier)
 
 ça fonctionne si le contenu du fichier est inferieur à la taille du buffer, mais sinon, ben ça merde àla fin de la premiere boucle.
 
 Je pense que ça foire dans le decryptage, enfin je suis pas sur
   
 
 ha ouai, sinon j'utilise un cryptage avec XOR et la taille de mon buffer est de la même taille que ma clé.
 
 
 
 
 | Code : 
 int	crypt_mail(char *file_name){	FILE	*fd;	FILE	*fd_2;	char	buf[BUF_SIZE];	char	tmp[BUF_SIZE];	int  i;	int  j;	if ((fd = fopen(file_name, "r+b" )) == 0) //ouvre en lecture binaire
  return (1);/*move_to_cpt change le nom du fichier de *.txt à *.cpt*/	if ((fd_2 = fopen(move_to_cpt(file_name), "a+b" )) == 0)  return (2);	while (i = fread(&buf, sizeof(char), BUF_SIZE, fd))  {  	buf[i] = '\0';  	for (j = 0; buf[j];j++)    tmp[j] ^= buf[j];  	tmp[i] = '\0';  	//on ecrit le buff encodé dans le nouveau fichier
  	fprintf(fd_2, "%s", tmp);  }	fclose(fd);	fclose(fd_2);	return (0);}int	decrypt_mail(char *file_name){	FILE	*fd;	FILE	*fd_2;	char	buf[BUF_SIZE];	char	tmp[BUF_SIZE];	int  i;	int  j;	if ((fd = fopen(file_name, "r+b" )) == 0)  return (1);	if ((fd_2 = fopen("decrypt.txt", "a+b" )) == 0)  return (2);	while (i = fread(&buf, sizeof(char), BUF_SIZE, fd))  {  	buf[i] = '\0';  	for (j = 0; j != i; j++)    tmp[j] ^= buf[j];  	tmp[j] = '\0';  	fprintf(fd_2, "%s", tmp);  }	fclose(fd);	fclose(fd_2);	return (0);}
 | 
 
 
 
 voila, si quelqu'un à de l'inspiration qu'il m'en fasse part
 
 
    |