Объединение c = c & (1 << bit) и int c = passkey.charAt (i% passkey.length () в конкурсе - PullRequest
0 голосов
/ 26 января 2012

Я ломаю голову над этим:

    for(i=0; i<message.length(); i++) {
        int c = passkey.charAt(i % passkey.length());
        int d = message.charAt(i);

        c = c & (1 << bit);

        result = result + (char)(c ^ d);    
    }

Я знаю, что LyJwNh9iPil3 (сообщение) переводится как ENCRYPTED (результат). Я не могу понять, каким должен быть использованный пароль. В настоящее время я застрял на:

L = 76 Е = 69 итак, char = 69, поэтому c должно быть 69 ^ (1/76) = 1,05729 ... Но это ПОСЛЕ того, как х-тые биты будут уничтожены и после деления на длину пароля.

Я верю, что никогда не смогу решить этот путь, которым я иду. Вы можете это подтвердить? Количество букв в сообщении и результат разные, верно?

1 Ответ

1 голос
/ 26 января 2012

Вы не правы здесь:

69^(1/76) = 1,05729..

^ - битовое XOR, а не мощность.

...