0

我将所有配置都设置为 UTF-8,但是 RSA 加密的结果之后 Intellij 无法识别。

这是我的设置:

在此处输入图像描述

在此处输入图像描述

这是实际的加密文本: 结果

 getRSA().init(Cipher.ENCRYPT_MODE, readPublicKey());
 return new String(getRSA().doFinal(token.getBytes("UTF-8")));

我也在 pom.xml 中设置

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

还有命令行参数:

-Dfile.encoding=UTF-8

可能是什么原因?

4

1 回答 1

5

您正在尝试将任意二进制数据视为 UTF-8 编码的文本。它不是。它只是任意的二进制数据。你所做的就像试图将图像或音乐文件表示为文本 - 它根本不是文本......

您应该使用 Base64 将其转换为字符串(例如使用此公共域库)。有关为什么需要这样做的更多背景信息,请参阅Marc Gravell 关于 IO 问题的博客文章。

请注意,这绝对不是Intellij 问题 - 这是您处理数据的方法的问题。

于 2013-09-04T17:53:04.523 回答