Я пытаюсь сохранить результаты операции xor в массив строк. Когда я запускаю свой код, как показано, он может распечатать значения.
int[] randnumbs = new int[0];
randnumbs = streamGen(plaintext.length());
String plaintextnumb;
String encryption;
int[] answer = new int[0];
int count = 0;
while(true) {
plaintextnumb = plaintext.substring(count, count + 2);
int numbfromfile = Integer.valueOf(plaintextnumb, 16);
int xored = numbfromfile ^ randnumbs[count];
encryption = Integer.toHexString(xored);
System.out.print(encryption + " ");
if(count == (plaintext.length() / 2) - 1) {
break;
}else {
count++;
}
}
результаты:
af a0 52 b1 fb 0 a6 75
Когда я изменяю свою переменную «шифрование» на массив строк, мой код может работать, но швы перестают работать, когда он достигает, где «шифрование»[count] = Integer.toHexString (xored); "Я никогда не сталкивался с этой проблемой раньше. Когда я запускаю свою программу, никаких ошибок не появляется, просто отображается пустая консоль. Я также вставил операторы распечатки до и после этой строки кода и мог видеть распечатку только до строки кода, а не после. Любое объяснение того, почему это происходит, будет с благодарностью!
int[] randnumbs = new int[0];
randnumbs = streamGen(plaintext.length());
String plaintextnumb;
String[] encryption = new String[0];
int[] answer = new int[0];
int count = 0;
while(true) {
plaintextnumb = plaintext.substring(count, count + 2);
int numbfromfile = Integer.valueOf(plaintextnumb, 16);
int xored = numbfromfile ^ randnumbs[count];
encryption[count] = Integer.toHexString(xored);
System.out.print(encryption[count] + " ");
if(count == (plaintext.length() / 2) - 1) {
break;
}else {
count++;
}
}