Я получаю загруженный файл.jks в качестве входных данных в формате входного потока. Я конвертирую его в кодированную строку UTF-8 и сохраняю ее в переменной String, которую я намерен хранить в БД.
Чтобы преобразовать keyStoreString = IOUtils.toString(inputstream, "UTF-8")
кодированную строку UTF-8, я использую: keyStoreString = IOUtils.toString(inputstream, "UTF-8")
Когда я снова преобразую его во входной поток, чтобы загрузить его в хранилище ключей, я получаю исключение
KeyStore ks = null;
ks = KeyStore.getInstance("JKS");
char[] passwordArray = password.toCharArray();
ks.load(IOUtils.toInputStream(keyStoreString, Constants.UTF_ENCODING),
passwordArray);
Когда я напрямую использую входной поток, тогда код работает, означает, что входной поток, который я получаю, является правильным.
Может кто-нибудь, пожалуйста, скажите мне, если я делаю что-то неправильно здесь. Любая помощь будет оценена.
Я преобразовываю его в кодированную строку UTF-8 и сохраняю ее в переменной String
Не делай этого!
Некоторые байтовые последовательности не могут быть переведены на символы. Вместо этого сохраните как строковый формат, специально предназначенный для представления двоичного файла, например Base64.