加密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) 个答案