java - 将 .jks 文件流转换为 utf-8 编码字符串并返回流后获取 "java.io.IOException: Invalid keystore"格式

标签 java encoding utf-8

我将上传的 .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/

相关文章:

Android 4.0 html 编码在 web View 中崩溃

java - 将第一个单词移到句子的末尾?

java - 在 Jaxb 解码时希望未知属性出错

java - 无法通过命令行多行输入来提供 Java 代码

java - Protocol Buffer : From Java to Objective-C using byte[]

php - 避免mysql一般错误: 1366 Incorrect string value

java - 如何防止节点和边在 GEF-Zest 图中相互重叠?

python - 如何实现串行设备使用的自定义代码页,以便我可以在 Python 中将文本转换为该代码页?

JavaServlet : How to handle unknown encodings?

vba - 保存使用 VBA 编码的 UTF-8 文本文件