Salut à tous!
Je vous explique mon problème: j'ai commencé une petit programme de cryptage tout simple (je débute...) seulement voila cela fonctionne nickel sur des fichiers texte mais sur des fichiers bitmap par exemple sans que j'arrive à comprendre pourquoi le cryptage ne s'effectue pas jusqu'au bout (à vrai dire il me manque à peu près 99,9% du fichier une fois decrypté )
Alors voila je vous met le code de ma classe cryptage si quelqu'un d'entre vous pourrai éclairer ma lanterne je lui serai très reconnaissant !

PS: je met toute la source mais le problême intervient pendant l'exécution de la méthode crypter()

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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
class CryptageSimple
{
public:
    CryptageSimple(char* cle, char* chemin1, char* chemin2)
    {
        keylen=strlen(cle);
        key=new char[keylen] ;
        strcpy(key, cle);

        int len=strlen(chemin1);
        path=new char[len];
        strcpy(path,chemin1);

        len=strlen(chemin2);
        path2=new char[len];
        strcpy(path2,chemin2);
    };
   
    bool crypter()
    {
        char line[1];
        unsigned int a;
        unsigned char b;
        int i=0;
        ifstream f(path);
        ofstream ff(path2);
            if(i>=keylen) i=0;
            f.read( line, 1 ) ;
            b=line[0];
            a=(int)b;
            a+=(int)key[i];
            a=a%255;
            b=a;
            i++;
        while(!f.eof())
        {
            ff<<b;
            if(i>=keylen) i=0;
            f.read( line, 1 ) ;
            b=line[0];
            a=(int)b;
            a+=(int)key[i];
            a=a%255;
            b=a;
            i++;
        }
        ff<<b;
        cout<<"Opération effectuée";
       
        return 0;
    };
   
    bool decrypter()
    {
        char line[1];
        int a;
        unsigned char b;
        int i=0;
        ifstream f(path);
        ofstream ff(path2);
            if(i>=keylen) i=0;
            f.read( line, 1 ) ;
            b=line[0];
            a=(int)b;
            a-=(int)key[i];
            a=a%255;
            b=(char)a;
            i++;
        while(!f.eof())
        {
            ff<<b;
            if(i>=keylen) i=0;
            f.read( line, 1 ) ;
            b=line[0];
            a=(int)b;
            a-=(int)key[i];
            a=a%255;
            b=(char)a;
            i++;
        }
        cout<<"Opération effectuée";
        return 0;
    };
private:
    int keylen;
    char* key;
    char* path;
    char* path2;
};

Voila merci d'avance à ceux qui pourrait m'aider...