我正在尝试加密一个名为“AES.KEY”的文件。我不太确定我做错了什么。我必须使用 AES 密钥(我创建的)加密文件,然后将其存储在文件“AES.KEY”中
当我运行我的代码时,我收到以下错误消息:
<块引用>线程“main”中的异常java.security.NoSuchAlgorithmException:找不到任何提供者 支持 acYb01wFX3pFk1xkouoCqFc6t9BBelPHgRnKXhQCnKo= 在 java.base/javax.crypto.Cipher.getInstance(Cipher.java:571) 在 WannaCry.encryptKeyFile(WannaCry.java:89) 在 WannaCry.main(WannaCry.java:84)
我的问题是我要用 RSA 公钥加密这个密钥,它是变量 注意:
可变密钥 = 我的 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();
}
我做错了什么?如果有人知道,我将不胜感激。 杰夫干杯