Jazyk C - dekryptování zašifrovaných souborů?
Napsal: ned 16. pro 2007, 11:25
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
#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