Java 对称加密不是';行不通

Java 对称加密不是';行不通,java,encryption,Java,Encryption,我正在尝试生成密文和解密数据。我已经分配了我的incrypted值和键。但当我在netbeans中运行程序时,它在执行区域显示错误,但不会生成密码文本和解密数据 Encryption.java: package encryption; import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; public class Encryption { private static byte[] message;

我正在尝试生成密文和解密数据。我已经分配了我的incrypted值和键。但当我在netbeans中运行程序时,它在执行区域显示错误,但不会生成密码文本和解密数据

Encryption.java:

package encryption;

import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;

public class Encryption {

    private static byte[] message;

    public static void main(String[] args) throws Exception {

        byte[] message = {0, 0, 1, 2, 3, 4, 5, 6, 7, 6, 5, 4, 2, 3, 8, 9};
        byte[] key = {1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4};
        byte[] ciphertext;
        byte[] decrypted;

        Sender s = new Sender();
        s.send(message);
        Receiver r = new Receiver();
        r.receive(message);
        // TODO code application logic here
    }

}
Sender.java:

package encryption;

import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;

public class Sender {

    private Cipher encoder;
    private SecretKeySpec myKey;

    public Sender() throws Exception {
       encoder = Cipher.getInstance("AES");
    }

    public void setKey(byte[] key) throws Exception {
      myKey = new SecretKeySpec(key, "AES");
        encoder.init(Cipher.ENCRYPT_MODE, myKey);
    }

    public byte[] send(byte[] message) throws Exception {
        return encoder.doFinal(message);
    }
}
Receiver.java:

package encryption;

import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;

public class Receiver {
    private Cipher decoder;
    private SecretKeySpec myKey;
    public Receiver()throws Exception{

        decoder=Cipher.getInstance("AES");
    }
    public void setKey(byte[] key) throws Exception{

        myKey= new SecretKeySpec(key ,"AES");
        decoder.init(Cipher.DECRYPT_MODE, myKey);
    }
    public byte[] receive(byte[] message) throws Exception{
        return decoder.doFinal(message);
    }
}

“它显示了错误”?提示:使用
s.send(message)的返回值
call.marko topolnik,错误如下:线程“main”java.lang.IllegalStateException中的异常:在javax.crypto.Cipher.checkCipherState(Cipher.java:1672)在javax.crypto.Cipher.doFinal(Cipher.java:2079)在encryption.Sender.send(Sender.java:22)在encryption.encryption.main(encryption.java:23)中未初始化密码Java结果:1错误消息没有告诉您出了什么问题吗?它告诉您密码未初始化。那么,在使用密码之前,您是否调用了init()?不,你没有。我没有看到任何静脉注射