java中的调用方法不起作用

时间:2018-03-14 11:41:38

标签: java algorithm encryption methods

我正在尝试调用的方法是来自此类的加密方法 但是当我尝试在调用类中调用它时,它在方法名称中显示错误,它显示该方法不存在或找不到:(请帮帮我

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);

}

2 个答案:

答案 0 :(得分:0)

我猜你所指的错误是编译时错误? encrypt(..)函数定义为采用两个字节的数组参数:源数据和加密密钥。在main(..)方法中,您只传入单个字节数组,即源数据。您还需要传入加密密钥。

答案 1 :(得分:0)

您定义的加密包含2个参数 public static byte [] encrypt(byte [] in,byte [] key) 但是你试图用一个 MARS.encrypt(数组)来调用它。