我为这个问题伤透了脑筋:
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=76E=69所以结果char=69,所以c必须是69^(1/76)=105729……但那是在第x个比特被咬掉之后,在除以密码长度之后。
我相信我永远无法解决这个问题,我要走的路。你能证实吗?邮件中的字母数和结果不同,对吧?
您错了:
69^(1/76) = 1,05729..
^是按位XOR,而不是幂。