Racja - nie spojrzalem dokladnie w kod... W algorytmie 1 znak XORujesz N razy z roznym kluczem gdzien N to dlugosc hasla... wiec dekodowanie mozna odwrocic chyba tylko brute force - tak jak szukanie wspolnego dzielnika.
Mozna uproscic i szukac sekwencyjnie dla rosnacej dlugosci klucza - przy XOR istnieje jak mi sie wydaje (choc nie sprawdzalem i nie wiem tego na pewno) spora szansa na kolizje, czyli na przyklad:
Kod:
P ^ "abc" = C
C ^ "abc" = P # co jest oczywiste
P ^ "abc" == P ^ "\0x12\0x135" # istnieje taka mozliwosc
Wtedy klucz znaleziony przez brute-force wcale nie musi byc tym samym co klucz uzyty do zakodowania materialu. Wazne aby produkt xor'owania byl ten sam...