co to robi ?

0

Wita

Mam problem, próbuje rozszyfrować pewną funkcję w <font color="red">javie</span> a że nie mam pojęcia o <font color="red">javie</span> ani C to zwracam siędo was z prośbą o pomoc.

function rome(N,s,R,b,a,o) {
R='IVXLCDM'.split(s=''),b=0,a=2;
while(N) {
o=N%(a=7-a);
N=N/a^0;
while(o)
s=R[o-->3?b+N%2+(N&=~1,o=1):b]+s;
b++;
}
return s;
}

Co dokładnie robi ta funkcja?
Pozdrawiam

//JavaScript NIE MA prawie NIC WSPÓLNEGO z Javą !!!! Ile razy można to pisać???? - m.M

0

Mniam, lubie takie :)

while(N){
  o=N%(a=7-a);
  N=N/a^0;
  while(o)s=R[o-->3?b+N%2+(N&=~1,o=1):b]+s;
  b++;
}
while(N!=0){ // !=  -  <>
  a=7-a;     //n/c
  o=N%a;  // % = mod - reszta z dzielenia
  N=N/a^0; // jesli w javie ^ to xor, to '^0' jest bez sensu, don't know
  while(o){  // i najsłodszy kawałek:
    int i;   // tak sie deklaruje w javie ? łorewa, potrzebna dodatkowa zmienna
    if(o>3){
      int j=N&0xfffffffe; // jesli int to 4 bajty (~1 = not bitowe) & - and 
      i=b+(N%2)+j;     // % - bylo - mod
      o=1;
      N=j;
    }else{
      i=b
      o=o-1;  // o-- nie jestem do konca pewnien czy tu, czy niżej poza ifem
    }
    s=R[i]+s; 
  }
  b=b+1;
}
0

flabra - kiedyś z kumplem chcieliśmy to rozłożyć na ifach tak jak Ty i funkcja działała nieco inaczej - sprawdziłeś, czy Twoja działa identycznie??

No ale autorowi pytania raczej nie chodziło o rozbicie, ale o wytłumaczanie co to robi. A to zamienia liczbę arabską na rzymską. Tu masz przykłada działania:

http://www.marooned.neostrada.pl/4prog/iglu.htm

0

Jeżeli ta fuckcja zamienia TYLKO z arabskich na rzymskie to w takim razie gdy v=1939 (MCMXXXIX) hasło powinno byc poprawne, a nie jest!Tak prawde mówiąć to jest to funkcja która broni hasła na stronke która jest zrobione by sprawdzić hakerów amatorów ;-) tak dla zabawy, a ja za cholere nie moge tego rozszyfrowac :D

function rome(N,s,R,b,a,o) {
  R='IVXLCDM'.split(s=''),b=0,a=2;
  while(N) {
    o=N%(a=7-a);
    N=N/a^0;
    while(o)
      s=R[o-->3?b+N%2+(N&=~1,o=1):b]+s;
    b++;
  }
  return s;
}

function check_passwd(v){
  with(top)
  rome(v) == MCMXXXIX ? location.href = 'p4_'+v+'.html' : alert('Hasło niepoprawne !!!   ');
  return false;
}
0

Tak prawde mówiąć to jest to funkcja która broni hasła na stronke która jest zrobione by sprawdzić hakerów amatorów ;-)

[rotfl] Właśnie - dla hakierów amatorów :-D

widzisz różnicę pomiędzy:
[code]rome(v) == MCMXXXIX ? location.href = 'p4'+v+'.html' : alert('Hasło niepoprawne !!!');
a
[code]rome(v) == 'MCMXXXIX' ? location.href = 'p4
'+v+'.html' : alert('Hasło niepoprawne !!!');
:-D
Więcej nie podpowiadam, bo to ma być zabawa dla Ciebie ;)
Pozdro

0

:D Rzeczywiście dałem się zrobić! :-)
Tylko co w takim razie ma oznaczać to MCMXXXIX jeżeli nie string?
Bo nie widze żeby gdzieś bvyła zadeklarowana taka zmiennaz jakąś wartością! Więc skąd mam wziąś tą wartość która jest zapisana w tej zmiennej? Nie znam się kompletnie na javie ani C!

//A już chciałem Ci pomóc... ale tego nie zrobię, bo nie robisz tego, o co tutaj na forum prosimy... o nie mylenie języka Java z językiem skryptowym JavaScript - m.M

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0