Помогите пожалуйста, почему выдает ошибка, когда пишешь на команде больше 7 символов??? Заранее спасибо
import java.util.Arrays;
import java.util.Scanner;
public class Encrypted {
public static void main(String[] args) {
Scanner t = new Scanner(System.in);
Scanner k = new Scanner(System.in);
String text, key;
byte[] result = new byte[1000];
System.out.print("Введите текст для зашифровки: ");
text = t.nextLine();
System.out.print("Введите 4 значный ключ шифрования с пробелами: ");
key = k.nextLine();
//System.out.println();
System.out.println(key);
for (int i = 0; i < text.length(); i++) {
byte[] text_byte = text.getBytes();
byte[] key_byte = key.getBytes();
//if (key_byte[i])
result[i] = (byte) (text_byte[i] + key_byte[i]);
//System.out.print("\n" + (text_byte[i]));
String c_str = new String(result);
System.out.print(c_str);
//System.out.print("\n" + (result[i]));
result[i] = 0;
}
System.out.println();
}
}
Введите текст для зашифровки: 12345678
Введите 4 значный ключ шифрования с пробелами: 1 2 3 4
1 2 3 4
b R e T h V k Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7 at Encrypted.main(Encrypted.java:29)
Всё просто:
когда ты вводишь ключ: 1 2 3 4, то длина массива key_byte равна 7, а не 8. Поэтому когда i = 7, то key_byte[i] выкидывает ошибку.
Если же поставить в конце 1 2 3 4 пробел — то будет 8 элементов и ошибки не будет.
Либо дозаполнять последний элемент массива байтом, либо придумывать еще что-то, чтобы работало как задумано
Все это ты бы мог сам увидеть банально включив отладчик и отладив свой код Отладчик IntelliJ IDEA.
вы не правильно реализовали алгоритм нужен двойной цикл
` for (int i = 0; i < text.length(); i++) {
byte[] text_byte = text.getBytes();
byte[] key_byte = key.getBytes();
for(int j=0; j<key_byte.lenght; j++)
result[i] = (byte) (text_byte[i] + key_byte[j]);
....`
конечно при условии что я понял что вы хотите сделать, дайте алгоритм шифрования если я вас не понял
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости