Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Szyfrowanie XOR - ucina plik wyjściowy

Ostatnio zmodyfikowano 2015-05-12 22:34
Autor Wiadomość
bingo009
Temat założony przez niniejszego użytkownika
Szyfrowanie XOR - ucina plik wyjściowy
» 2015-05-12 22:27:02
Witam was serdecznie, usiłuję sobie napisać program do szyfrowania metodą xor. Ładuję plik źródłowy, i w pętli aż do jego końca każdy jego bajt ma wykonaną operację z bajtem klucza(klucz jest typu string). Problem polega na tym, że deszyfrowanie coś szwankuje - szyfruje dość spory plik(log aplikacji), po szyfrowaniu jego rozmiar jest około 1kb większy, potem usiłuję deszyfrować i koniec. Z dość obszernego logu jedyne co mi zostało to jego pierwsza i w dodatku ucięta linijka. Plik po deszyfrowaniu zajmuje 18 bajtów, czyli bardzo dużo stracił ze swojej zawartości. Kod wygląda tak:
C/C++
int xor_alghoritm( string key, string file, string output )
{
    FILE * in_file;
    FILE * out_file;
    int c;
    int key_count = 0;
   
    if(( in_file = fopen( file.c_str(), "r" ) ) == NULL )
         return - 2;
   
    if(( out_file = fopen( output.c_str(), "w" ) ) == NULL )
         return - 3;
   
    while(( c = fgetc( in_file ) ) != EOF )
    {
        c ^= key[ key_count ];
        fputc( c, out_file );
       
        key_count++;
        if( key_count >= key.length() - 1 )
             key_count = 0;
       
    }
   
    fclose( in_file );
    fclose( out_file );
   
    return 0;
}

Probowałem już poprawiać ten kod zgodnie z przykładowym algorytmem znalezionym w internecie, ale i tak nic to nie daje. Klucz podaje użytkownik w programie, pobieram go normalnie, za pomocą cin, jest on typu string, jak łatwo się domyśleć. Co jest najciekawsze, jak próbuję znowu zaszyfrować zaszyfrowany plik podając ten sam klucz(czyli powinien się rozszyfrować), to dzieje się to samo - również mam tylko kawałek pierwszej linijki oryginału.
P-132152
Monika90
» 2015-05-12 22:31:19
Może spróbuj otworzyć oba pliki w trybie binarnym.
P-132154
bingo009
Temat założony przez niniejszego użytkownika
» 2015-05-12 22:34:37
Nie dość, że szybka odpowiedź, to jeszcze trafna. Pomogło, plik z logiem po zaszyfrowaniu i odszyfrowaniu jest już w 100% zgodny z oryginałem. Dziękuję bardzo za pomoc.
P-132156
« 1 »
  Strona 1 z 1