Я знаю, что есть много тем по этому поводу, но я не могу найти решение с ними.
Постановка задачи:
Нужно зашифровать данные. Ниже мой код:
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.spec.SecretKeySpec;
import java.nio.ByteBuffer;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;
import static java.nio.charset.StandardCharsets.UTF_8;
public class CryptoUtil {
private static final String AES = "AES/ECB/PKCS5Padding";
public String encryptMessage(final String message, final byte[] dataKey) throws Exception {
SecretKeySpec secretKey = new SecretKeySpec(dataKey, AES);
try {
Cipher cipher = Cipher.getInstance(AES);
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
byte[] encryptedMessage = cipher.doFinal(message.getBytes());
return Base64.getEncoder().encodeToString(encryptedMessage);
}
catch (NoSuchPaddingException | NoSuchAlgorithmException | InvalidKeyException | BadPaddingException | IllegalBlockSizeException e) {
throw new Exception("Error while encrypting application credentials", e);
}
}
}
Мне нужно сделать это с помощью поставщика услуг BountyCastle. Таким образом, я выполнил шаги, упомянутые здесь и это . Я использую JAVA 11, но я перешел на JAVA 8, чтобы перейти по указанной ссылке.
В своем коде я добавил статический блок, чтобы добавить BountyCastle в качестве поставщика услуг
static {
BouncyCastleProvider bouncyCastleProvider = new BouncyCastleProvider();
Security.addProvider(bouncyCastleProvider);
}
Но он не добавляется в качестве проверенных поставщиков. Итак, я понимаю проблему.
Любая идея, как справиться. Как добавить BouncyCastle в качестве проверенного поставщика.
Я работаю на локальной машине и мне нужно создать JAR.