相关疑难解决方法(0)

为什么我的AES加密会抛出InvalidKeyException?

我目前正在研究一种使用密钥加密/解密特定文件的功能.我写了三个类,一个生成一个密钥,一个用密钥加密文件,另一个用密钥加密.

生成密钥并加密文件可以正常工作,但是当我尝试解密文件时,会在行处抛出异常c.init(Cipher.DECRYPT_MODE, keySpec);::

java.security.InvalidKeyException:缺少参数

我认为我byte[]在解密文件时将密钥流式传输给我或者出错了我做错了.

快速解释这三个类:KeyHandler创建一个AES密钥并将其存储在硬盘上.密钥/明文/加密/解密文件的名称当前是硬编码的,用于测试目的.

EncryptionHandler将磁盘上的.txt文件转换为字节,使用密钥加密文件,然后使用加密字节写入磁盘CipherOutputStream.

DecryptionHandler当然是相反的EncryptionHandler.

这是代码:

    public class KeyHandler {
        Scanner scan = new Scanner(System.in);

        public KeyHandler(){
            try {
                startMenu();
            } catch (Exception e) {
                System.out.println("fel någonstanns :)");
            }
        }

        public void startMenu() throws Exception{

            System.out.println("Hej. Med detta program kan du generera en hemlig nyckel"+"\n"+"Vill du:"+"\n"+ "1. Generera en nyckel"+"\n"+"2. Avsluta");
            int val=Integer.parseInt(scan.nextLine());
        do{ 
            switch (val){
            case 1: generateKey(); break;
            case 2: System.exit(1);

            default: System.out.println("Du måste välja …
Run Code Online (Sandbox Code Playgroud)

java encryption aes secret-key

38
推荐指数
1
解决办法
4万
查看次数

标签 统计

aes ×1

encryption ×1

java ×1

secret-key ×1