Bonjour,
j'essaye de faire un petit programme qui fait un XOR en 1 fichier et 1 mot de passe. Quand le fichier n'est pas trop gros ça marche, mais dès que ca dépasse une certaine taille, j'ai des pertes.
La manip est la suivante : j'ai un fichier A, je fais un XOR avec un mot de passe quelconque, ça me donne un fichier B. Je refait la manip pour le fichier B, ça me donne un fichier C qui devrait être identique au fichier A.
J'ai testé avec un fichier de 163ko, ça marche, avec un fichier de 3Mo j'ai plein de différences en A et C.
Mon main ressemble à ça :
Les autres fichiers sont en pièces attachées.
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 void main(void) { CFichier fichierIn("test.txt", std::ios::in | std::ios::binary); CFichier fichierOut("resultat.txt", std::ios::out | std::ios::binary); CXOR xor(pass); const long int nbChunk = fichierIn.getNbChunk(BUF_LEN); const long int lastChunkSize = fichierIn.getLastChunkSize(BUF_LEN); for(long int i = 0 ; i<nbChunk ; i++) { fichierIn.read(i*nbChunk, BUF_LEN); fichierOut.write(fichierIn.getBuffer()); } fichierIn.read(i*nbChunk, lastChunkSize); fichierOut.write(fichierIn.getBuffer()); }
Merci d'avance pour votre aide !
Andy.
Partager