[ tarantula @ 15.12.2001. 02:26 ] @
Pozdrav svima,
ajde da mi neko pomogne. Hocu da napravim program u c++ koji ce sluziti za enkripciju (mislim da ce mi ovde vishe pomoci nego da sam napisao pitanje na "Crypted Code" temi).
Program treba da vrshi sto jednostavniju enkripciju slova i brojeva.
Pri pokretanju programa iz konzole treba da uzima parametre :
imeprograma <key> <file_za_krypt> <izlazni_file>
E, znam skoro sve kako se radi ali ne znam glavno :
Kako da namestim da mi karaktere menja u neke druge karaktere osim ono da za svaki karakter stavljam putback ili putin kako vec beshe zaboravio sam trenutno. Znam da postoji nacin da se sve to odjednom odradi da se nepishe za svaki karakter pojedinacno vec sve odjednom.
Recimo da svaki karakter u <file_za_krypt> prebaci u hex zapis i sacuva u <izlazni_file> a pritom nekako da se upootrebi ovaj KEY. Znaci da kad budem hteo da deriptujem neki file koji je kriptovan ovim programom pod recimo key-em 666, da kao usage ide :
imeprograma <key> <file_za_decrypt> <izlazni_file>
// stim da je ovde imeprograma neki drugi program koji cu kasnije da
// napravim za decrypt sto znaci da neobavlja ovaj program oba posla.
// Sada mi treba samo za encrypt

Znaci da se enkripcija vrshi vezano za key koji je naveden.
Mislim da sam bio dovoljno desktiptivan.
Ako ima dodatnih pitanja samo pishite.


Pozdrav...
[ SnOoP @ 30.12.2001. 15:05 ] @
pa prvo stvori algoritam... pod kojem ce enkripcija da se navodi.. a za ostalo je sve lagano
mozes ovako nesto da imas:


#include <stdio.h>
#include <fcntl.h>
#include <string.h>
#include <stdlib.h>

main (int argc, char *argv[])
{
long int e,a,a2,rannum;
int infile, outfile, count;
unsigned long int key, key1, key2, key3, key4, key5, key6, key7, key8, key9,key2i;
unsigned long int key10,key11,key12,ss,sz;
long unsigned int i = 0;
int ds;
char keystr;
char myin[1];
char myout[1];
char *ifile, *ofile;

ifile=argv[1];
ofile=argv[2];
key = atoi(argv[3]);

ds=*argv[4];
sz = key * 10;
ss = key * key;

infile = open(ifile, O_RDONLY);
outfile = open(ofile, O_RDWR | O_CREAT | O_TRUNC, 0777);
i = 1;
if (ds == 101)
{

printf("Encrypting ...\n");
key1=ss-sz+4;
key2=ss-4*key;
key3=-ss+2*key+5;
key4=ss-6*key+6;
key5=2 * ss - 4;
}
else {

printf("Decrypting ...\n");
key1=-ss+sz-4;
key2=-ss-4*-key;
key3=ss+2*-key-5;
key4=-ss-6*-key-6;
key5=-2 * ss + 4;

}
i = 0;

count=1;

while (( read (infile, myin, sizeof(myin))) > 0) {

if (ds == 101) {
i++;
i = i + count;
}
else {
i--;
i = i - count;
}

switch (count) {
case 1:
key1 = key1 +i ;
myout[0] = myin[0]+key1;
count++;
break;
case 2:
key2 = key2 +i ;
myout[0] = myin[0]-key2;
count++;
break;
case 3:
key3 = key3 +i ;
myout[0] = myin[0]+key3;
count++;
break;
case 4:
key4 = key4 +i ;
myout[0] = myin[0]-key4;
count++;
break;

case 5:
key5 = key5 + i ;
myout[0] = myin[0]+key5;
count=1;
break;

}
write(outfile, myout, sizeof(myout));
}
if (ds == 101) {
printf("\nDone Encrypting...");
printf("\n Encrypted %s", ifile);
printf(" to %s", ofile);
}
else {
printf("\nDone Decrypting...");

printf("\n Decrypted %s", ifile);
printf(" to %s", ofile);
printf("\n");
}
}

[ shiggy @ 30.12.2001. 16:28 ] @
Citat:
SnOoP:
pa prvo stvori algoritam... pod kojem ce enkripcija da se navodi.. a za ostalo je sve lagano
mozes ovako nesto da imas:

#include <stdio.h>
#include <fcntl.h>
#include <string.h>
#include <stdlib.h>

main (int argc, char *argv[])
{
long int e,a,a2,rannum;
int infile, outfile, count;
unsigned long int key, key1, key2, key3, key4, key5, key6, key7, key8, key9,key2i;
unsigned long int key10,key11,key12,ss,sz;
.......
....
...
itd



Ne razumem bash najbolje, ajde budi lubazan i opishi algoritam rechiima.Tteshko mi ide ovo debugovanje pogotovu kad imasj key10, key11 itd

Hvala
[ SnOoP @ 03.01.2002. 14:42 ] @
sta se tu ima objasnjavati... pogledaj sam code...
a key10, 11, 12 su samo extra koji su mogli biti upotrebljeni ...