Heh, ne znam zasto vam nije uspelo da razbijete kod, kada sam vam opisao algoritam i dao sve moguce hintove..
Source koji saljem je source za razbijanje mog algoritma, i dosledno prati nacin razbijanja koji sam opisao
u nekoj od prethodnih poruka.
Here it goes:
--- cut <breaker.c> ---
#include <stdio.h>
#include <stdarg.h>
#include <math.h>
/* Program koji razbija algoritam SOL1 */
/* Autor algoritma: Aleksandar Radulovic */
/* Sva prava zadrzana, bla bla bla.. */
unsigned char rotate(char c){
unsigned char a,b,d,e;
a = c << 1;
b = c & 0x80;
d = b >> 7;
e = a | d;
return e;
}
void main(int argc, char *argv[]) {
int rotn=1;
unsigned char key, chr, cyph, i;
FILE *fi;
if(argc!=2) {
printf("greska u parametrima...n");
printf("nKoriscenje : %s <fajl koji se sifruje>nn",argv[0]);
exit(1);
}
for (i=1; i<255; i++) {
key=i; chr=0; cyph=0; rotn=1;
printf("nnKey is : %dn",i);
if((fi=fopen(argv[1],"r"))==NULL) {
printf("Ne mogu da otvorim fajl %s !n",argv[1]);
exit(1);
}
while (!feof(fi)) {
chr = getc(fi);
cyph=chr ^ key;
if(rotn==9) {
rotn=1;
key++;
}
else {
key=rotate(key);
rotn++;
}
printf("%c",cyph);
}
fclose(fi);
}
}
--- end <breaker.c> ---
Program pokrecete sa:
$ ./breaker <ime_fajla_sa_sifrovanom_porukom>
Kljuc kojim je sifrovana poruka je 133, i pod njim cete videti poruku..
Malo kasnije cu poslati i sol1.c, originalni program kojim sam sifrovao poruku.
Vise srece sledeci put.
Pozdrav, alex.
[
Ovu poruku je menjao alex dana 02-20-2001 u 11:25 AM GMT]
[
Ovu poruku je menjao alex dana 02-20-2001 u 11:25 AM GMT]
Alex: My favorite site is
http://localhost/
R.J. Oppenheimer: "I am become death, destroyer of worlds" (1945 AD)
tweet.13x ||
linkedin.13x