有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

加密Java Crypto尝试加密文件

我正在尝试加密一个名为“AES.KEY”的文件。我不太确定我做错了什么。我必须使用AES密钥(我创建的)对文件进行加密,然后将其存储在文件“AES.key”中

当我运行代码时,收到以下错误消息:

Exception in thread "main" java.security.NoSuchAlgorithmException: Cannot find any provider supporting acYb01wFX3pFk1xkouoCqFc6t9BBelPHgRnKXhQCnKo= at java.base/javax.crypto.Cipher.getInstance(Cipher.java:571) at WannaCry.encryptKeyFile(WannaCry.java:89) at WannaCry.main(WannaCry.java:84)

我的问题是我要用RSA公钥加密这个密钥,这个公钥是变量 注:

  • 变量skey=我的AES密钥 这是我的程序代码

    ///CODE ABOVE
       IvParameterSpec iv =  generateIv();
       EncryptFile(skey, iv, file);
        //CREATE AES.Key file
       File file2 =  createKeyFile("aes.key");
        encryptKeyFile(skey, pubKey, file2, iv);
        }
    private static void encryptKeyFile(SecretKey sk, PublicKey pubKey, File file, 
       IvParameterSpec iv) {
      String encodedKey = Base64.getEncoder().encodeToString(sk.getEncoded());
      byte[] b = encodedKey.getBytes();
      Cipher cipher = Cipher.getInstance(encodedKey);
      cipher.init(Cipher.ENCRYPT_MODE, pubKey, iv);
      byte[] cipherText = cipher.doFinal(b);
      FileOutputStream fos = new FileOutputStream(file);
        fos.write(cipherText);
        fos.close();
       }
    

我做错了什么?如果有人知道,我将非常感激。 干杯,杰夫


共 (0) 个答案