我将上传的 .jks 文件作为输入流格式的输入。我将其转换为 UTF-8 编码的字符串并将其存储在 String 变量中,而我打算将其存储在数据库中。
要将输入流转换为 UTF-8 编码字符串,我使用: keyStoreString = IOUtils.toString(inputstream, "UTF-8")
当我再次将其转换为输入流以在 keystore 中加载相同内容时,我收到异常
KeyStore ks = null;
ks = KeyStore.getInstance("JKS");
char[] passwordArray = password.toCharArray();
ks.load(IOUtils.toInputStream(keyStoreString, Constants.UTF_ENCODING),
passwordArray);
当我直接使用输入流时,代码可以正常工作,这意味着我得到的输入流是正确的。
谁能告诉我我在这里做错了什么吗?任何帮助将不胜感激。
最佳答案
I am converting it into UTF-8 encoded string and storing it in String variable
不要这样做!
某些字节序列无法转换为字符。相反,存储为专门设计用于表示二进制的字符串格式,例如 Base64。
关于java - 将 .jks 文件流转换为 utf-8 编码字符串并返回流后获取 "java.io.IOException: Invalid keystore"格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22500306/