У меня здесь пароль в виде двоичной строки:
01110101 01101000 01010100 01000100 01000011 01000100 00110111 00111000 00110110 00110010 00110100 01100111 00100110 00110000 00111001 00111000 00111101 ...
И сообщение в виде двоичной строки:
01001000 01100001 01101100 01101100 01101111 01101100 01100101 01101100 01100101 01100001 01110011 01100100 01100110
Я пробовал много разных способов XOR для этих 2 строк, и этомоя последняя попытка:
public static String encrypt(String str) {
String pwBinary = getBinaryString(pw);
String msgBinary = getBinaryString(str);
StringBuilder temp = new StringBuilder();
int count = 0;
for(int i = 0; i < msgBinary.length(); i++) {
if(!(i%8==count)) {
if(msgBinary.charAt(i) == pwBinary.charAt(i)) {
temp.append(0);
}else {
temp.append(1);
}
}else if(i!=0) {
temp.append(" ");
count++;
i++;
}
}
return temp.toString();
}
Вывод всегда начинает портиться где-то посередине ...
0111101 0001001 0111000 0101000 0101100 0101000 1010010 1010100 10100110010100110010001110000000110010000000
Я не знаю, как правильно получить пустые места :( Заранее спасибо: -)