我将上传的.jks文件作为输入流格式的输入。我将它转换为UTF-8编码的字符串并将其存储在String变量中,我打算将其存储在DB中
要将输入流转换为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);
当我直接使用输入流然后代码正常工作时,意味着我得到的输入流是正确的 任何人都可以告诉我,如果我在这里做错了什么。任何帮助将不胜感激。
答案 0 :(得分:4)
我将其转换为UTF-8编码的字符串并将其存储在String变量
中
不要这样做!
某些字节序列无法转换为字符。相反,存储为明确设计用于表示二进制的字符串格式,例如Base64。