re
j'ai essayé de faire àa par moi-même et j'obtiens au final un fichier qui contient pleins de gros carrés et qui fait 5 mégas octets environ.
Voici mon code :
#include <stdio.h>
#include <stdlib.h>
enum{SUCCESS,FAIL};
void XorAndWrite(FILE *fin,FILE *fout);
FILE *fptr1,*fptr2;
char filename1[20]; // Fichier de lecture
char filename2[20]; // Fichier d'écriture
char key[20]; // La clé à rentrer par l'utilisateur
int reval = SUCCESS;
int main()
{
printf("Entrez le nom du fichier a ouvrir en lecture :\n");
gets(filename1);
printf("Entrez le nom du fichier a ouvrir en ecriture :\n");
gets(filename2);
printf("Entrez votre clé de cryptage :\n");
gets(key);
fptr1 = fopen(filename1,"r");
fptr2 = fopen(filename2,"w");
if(fptr1 == NULL)
{
printf("Impossible d'ouvrir %s !\n",filename1);
reval = FAIL;
}
else if(fptr2 == NULL)
{
printf("Impossible d'ouvrir %s !\n",filename2);
reval = FAIL;
}
else
{
// Tout est bon, on lance la fonction et on ferme les fichiers
XorAndWrite(fptr1,fptr2);
fclose(fptr1);
fclose(fptr2);
}
return 0;
}
/* Définition de fonction */
void XorAndWrite(FILE *fin, FILE *fout)
{
char ch;
int i;
ch = fgetc(fin);
while(ch != EOF)
{
for(i=0; i<=key[20]; i++)
{
fprintf(fout,"%c",ch^key[i]);
if(key[i] == '\0')
{
i = 0; // Retour de la boucle :p
}
}
}
}
Toujours prêt à m'aider ?