Salut,
Lorsque j'ecris dans un fichier binaire avec fwrite et que je relis par la suite ce fichier avec fread, je me rend compte que les valeurs lus dans le fichier ne sont pas que j'ai donnée en parametre defwrite le coup d'avant!!
Voici mon code :
Ce que je recois en entrée de decipher n'est pas ce qui etait à la sortie de cipher!!!Pourtant j'ai uniquement une operation de ecriture lecture entre les 2.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 do { length = fread(mem,1,1,f_in); if(length != 0) a = * mem; else a = * zero; length = fread(mem,1,1,f_in); if(length != 0) b = * mem; else b = * zero; length = fread(mem,1,1,f_in); if(length != 0) c = * mem; else c = * zero; length = fread(mem,1,1,f_in); if(length != 0) d = * mem; else d = * zero; //cipherblock(&a,&b,&c,&d,k); decipherblock(&a,&b,&c,&d,k); *mem = a; fwrite(mem,1,1,f_out); *mem = b; fwrite(mem,1,1,f_out); *mem = c; fwrite(mem,1,1,f_out); *mem = d; fwrite(mem,1,1,f_out); loop++; }while(length != 0);
en effet cipherbloc renvoit :
68E818D8 8D51B3A8 EFB3A42 60E426D6
et decipherblock recoit apres lecture du fichier :
D8 A8 42 D6
Comment corriger ce probleme?
Pour information cipherblock(decipherblock(x)) = x
Et j'utilise decipher uniquement sur des fichiers codés par cipher!!
Si quelqu'un a une idée.
Laurent
Partager