[ B0R0 @ 17.01.2006. 08:38 ] @
Problem se sastoji u slijedecem :

Password se kreira na slijedeci nacin :

ascii karakter prvog znaka mnozi se sa 1555
ascii karakter drugog znaka mnozi se sa 781
ascii karakter treceg znaka mnozi se sa 341
ascii karakter cetvrtog znaka mnozi se sa 121
ascii karakter petog znaka mnozi se sa 31
ascii karakter sestog znaka mnozi se sa 5

zatim se ovako dobijeni umnosci se sabiraju, te se dobije neki broj (npr.259665).
Pitanje je : moze li neko pomoci (ili bar sugerisati) kako da napravim program koji ce iz ovako dobijenog broja vratiti password ?

Hvala svakom ko mi bar nagovijesti rjesenje !!!
[ Jbyn4e @ 17.01.2006. 12:22 ] @
recimo 259665 = 1555*a+781*b+341*c+121*d+31*e+5*f
a, b, c, d, e, f su izmedju 32 i 127 (ascii tabela, pretpostavka da je ovako)
Ascii tabelu imas recimo na
http://www.lookuptables.com/
Mozes da vrtis for petlje pa da ispitujes da li je ispunjen uslov...

ovo sad imaginrano ispitujem, nije ni jedan programski jezik:

Code:

trazeni_broj =  259665;
ascii = array (1-6); //ovde cemo zapisati brojeve ascii karaktera
for (a=32,a<=127,a++)
    for (b=32,b<=127,b++)
        for (c=32,c<=127,c++)
            for (d=32,d<=127,d++)
                for (e=32,e<=127,e++)
                    for (f=32,f<=127,f++)
                    {
                    //nalazimo samo prvo resenje recimo:
                    if (trazeni_broj == 1555*a+781*b+341*c+121*d+31*e+5*f)
                        {
                        // ako se slaze da je ovo jednako, onda je to za trenutne vrednosti a,b...f, pa ih zapisujemo u dugu promenljivu
                        ascii(1)=a;
                        ascii(2)=b;
                        ascii(3)=c;
                        ascii(4)=d;
                        ascii(5)=e;
                        ascii(6)=f;
                        exit iz petlji
                        }
                    }
If ( je postavljeno  ascii(a) i nije prazno)
    {
    // ispisi vrednosti u karakterima:
    for (i=1,i<=6,i++) print (i+". znak = "+chr(ascii[i])+"\n");
    }
else
    {
    print "Ne postoji resenje passworda za ovaj broj";
    }


Mozda postoji neko drugo resenje, elegantnije, ali ovo ti je brute force :) - pa sad koliko traje... ne znam, trebas testirati kad zavrsis program.

P.S. A sta ako nema 6 karaktera lozinka?


[Ovu poruku je menjao Jbyn4e dana 17.01.2006. u 13:26 GMT+1]
[ B0R0 @ 18.01.2006. 06:08 ] @
Zahvaljujem, javicu sta sam ucinio....
Pozdrav celoj ekipi ES
[ B0R0 @ 18.01.2006. 06:13 ] @
Pass stvarno ima sest znakova, tako da ako se neki karakter ne unese , to se tretira kao space ili ascii 32.
Zahvaljujem, javicu sta sam ucinio....
Pozdrav celoj ekipi ES
[ EWalter @ 25.01.2006. 06:20 ] @
Uspio sam ! Napravio sam programcic, koji "vrti" sve vrijednosti od f do a...Na mojoj izuzetno jakoj mashini dekripcija traje prilicno dugo i dobijam nelogicne rezultate, koji su ipak tacni. Npr. Password je neko ime (Miki) , a ja kao rezultat dobijem nesto tipa "qŤa ." , sto je tacno, odnosno uklapa se u racunicu. Jos sam i ubrzao algoritam tako sto sam varijabli f dao najvecu vrijednost(1555), i ona se prva "izvrti", te tako mnogo brze dobijam odgovarajuce vrijednosti stringova.
Pozdrav Walter