Jazyk C - dekryptování zašifrovaných souborů?

Vývojová prostředí, aplikace, skripty, http://www... síťové programy, internet, sdílení...
Odpovědět
tomygo
Začátečník
Začátečník
Registrován: 16. říj 2004

Jazyk C - dekryptování zašifrovaných souborů?

Příspěvek od tomygo »

Mám tenhle zdroják:

#include <stdlib>
#include <stdio>
#define POCET_CISEL 5
#define POCET_BAJTU sizeof(long)*POCET_CISEL

/* unie - kryptovani souboru */

union sifra
{
char text[POCET_BAJTU];
long cisla[POCET_CISEL];
};

void vypln(char *, int);

int main(int argc, char *argv[])
{
union sifra data;
FILE *uvstup, *uvystup;
int pocet, i;
char znak;
if(argc == 3)
{
uvystup = fopen(argv[2], "w");
if((uvstup = fopen(argv[1], "r")) != NULL)
{
pocet = 0;
vypln(data.text, POCET_BAJTU);
do
{
data.text[pocet++] = getc(uvstup);
if(feof(uvstup)) data.text[--pocet] = 0;
if((pocet == POCET_BAJTU) || feof(uvstup))
{
i = 0;
do
fprintf(uvystup, "%+15i", data.cisla[i++]);
while(i<POCET_CISEL);
fprintf(uvystup, "\n");
pocet = 0;
vypln(data.text, POCET_BAJTU);
}
}
while(!feof(uvstup));

fclose(uvstup);
fclose(uvystup);
}
}
else
printf("Chybny pocet parametru.\n");
system("PAUSE");
return 0;
}

void vypln(char *bajty, int pocet)
{
int i;
for(i=0; i<pocet; i++)
bajty = 0;
};


Tím zakryptuju nějaký texťák a potřebuju zase napsat tzv. opačný program, který zase ty zašifrovaný soubory zpátky rozšifruje... Ale musí to být pomocí unie a nějak to nemůžu dát dokupy... Nedáte to dohromady někdo, pokud máte chvíli? Díky
tomygo
Začátečník
Začátečník
Registrován: 16. říj 2004

Příspěvek od tomygo »

Nikdo nevíte? :(
wexxa
Nováček
Nováček
Registrován: 06. led 2008
Bydliště: Náchod
Kontaktovat uživatele:

Příspěvek od wexxa »

skus http://builder.cz taky tam občas zajdu ;))
€agle
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 13. lis 2003
Bydliště: Vlastní 3D svět :)
Kontaktovat uživatele:

Příspěvek od €agle »

Nechce se mi psat cely program, ale tady mas zakladni algoritmus, ty veci kolem jako ziskani nazvu souboru z parametru uz snad nejak zvladnes...

Kód: Vybrat vše

    FILE* inFile = fopen("out.txt", "r"); //vstupni soubor
    FILE* outFile = fopen("out2.txt", "w"); //vystupni soubor
    union
    {
        long l; //kodove cislo
        char data[sizeof(long)+1]; //jeho textova reprezentace
    };
    char tmp[15]; //kazdy kod ve vstupu ma 15 znaku
    data[sizeof(long)] = 0; //ukonceni retezce
    while(!feof(inFile))
    {
        memset(tmp, 0, 15);
        fread(tmp, 15, 1, inFile); //nacteni kodu
        l = atol(tmp); //prevedeni na long
        fputs(data, outFile); //vypis do vystupu
    }
    fclose(inFile);
    fclose(outFile);
Jinak sifra je to primitivni, pouze pouzije bytovou reprezentaci daneho textu jako soustavu long cisel a jejich hodnotu zapise do souboru v ciselne podobe.
Eagle3D Engine under developement

Hledáme do firmy schopného ASP/VB.NET/C# programátora, více po SZ
Odpovědět

Zpět na „Programování a web“