Метод вызова в java не работает

метод, который я пытаюсь вызвать, - это метод шифрования из этого класса но когда я пытаюсь вызвать его в классе вызова, он показывает ошибку в имени метода, он показывает, что метод отсутствует или не найден :( пожалуйста, помогите мне

package test;
public class MARS {
public static byte[] encrypt(byte[] in,byte[] key){
            K = expandKey(key);
            int lenght=0;
            byte[] padding = new byte[1];
            int i;
            lenght = 16 - in.length % 16;
            padding = new byte[lenght];
            padding[0] = (byte) 0x80;

            for (i = 1; i < lenght; i++)
                    padding[i] = 0;

            byte[] tmp = new byte[in.length + lenght];
            byte[] bloc = new byte[16];

            int count = 0;

            for (i = 0; i < in.length + lenght; i++) {
                    if (i > 0 && i % 16 == 0) {
                            bloc = encryptBloc(bloc);
                            System.arraycopy(bloc, 0, tmp, i - 16, bloc.length);
                    }
                    if (i < in.length)
                            bloc[i % 16] = in[i];
                    else{
                            bloc[i % 16] = padding[count % 16];
                            count++;
                    }
            }
            if (bloc.length == 16){
                    bloc = encryptBloc(bloc);
                    System.arraycopy(bloc, 0, tmp, i - 16, bloc.length);
            }

            return tmp;
    }

}

Это вызывающий класс, ошибка которого показана в строке 3.

    public static void main(String[] args) {
    byte[ ] array = “going to encrypt ”.getByte( );
    byte[ ] arrayEnc = MARS.encrypt(array);
    System.out.println(“plain text: ” + array);
    System.out.println(“Encrypted Text: ”+ arrayEnc);

}

Не существует метода encrypt, принимающего один аргумент.

user7 14.03.2018 12:43

см. эту строчку .. 1) bloc = encryptBloc (bloc); нет метода. 2) K = expandKey (ключ) K не изменяется. 3) Метод expandKey (byte []) не определен для

Night Programmer 14.03.2018 12:50

это только часть кода. это метод, который я пытаюсь вызвать, может получить доступ к другим методам, которые являются encryptBloc (bloc); K = expandKey (ключ)

Miss A 15.03.2018 06:27
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
3
66
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Я предполагаю, что ошибка, о которой вы говорите, является ошибкой времени компиляции? Функция encrypt (..) определяется как принимающая два параметра байтового массива: исходные данные и ключ шифрования. В вашем методе main (..) вы передаете только однобайтовый массив - исходные данные. Вам также необходимо передать ключ шифрования.

да я понял что позже жаль. но я понятия не имею, как вызвать ключевой параметр, я вызвал только параметр данных. любая помощь, пожалуйста?

Miss A 15.03.2018 06:29
Ответ принят как подходящий

Определенное вами шифрование принимает 2 параметра публичный статический байт [] шифрование (байт [] в, байт [] ключ) Но вы пытаетесь вызвать его одним MARS.encrypt (массив).

да я понял что позже жаль. но я понятия не имею, как вызвать ключевой параметр, я вызвал только параметр данных. любая помощь, пожалуйста?

Miss A 15.03.2018 06:29

Вам необходимо создать ключевой объект, который представляет собой массив байтов, и передать его методу. MARS.encrypt (массив, ключ)

Sukreet Roy Choudhury 22.03.2018 11:08

Другие вопросы по теме