我正在尝试调用的方法是来自此类的加密方法 但是当我尝试在调用类中调用它时,它在方法名称中显示错误,它显示该方法不存在或找不到:(请帮帮我
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);
}
答案 0 :(得分:0)
我猜你所指的错误是编译时错误? encrypt(..)函数定义为采用两个字节的数组参数:源数据和加密密钥。在main(..)方法中,您只传入单个字节数组,即源数据。您还需要传入加密密钥。
答案 1 :(得分:0)
您定义的加密包含2个参数 public static byte [] encrypt(byte [] in,byte [] key) 但是你试图用一个 MARS.encrypt(数组)来调用它。