0

加密和解密完成后我面临一些问题。我正在尝试使用 JAVA Crypt API 加密/解密我的查询字符串(不是主机名和上下文)。我们永远不知道我们会得到什么样的字符串。嗯,这正在正常发生。完成此加密后,我需要将此 URL 传递给 JS 函数,在该函数中抛出Unterminated String Constant失败。这里的问题/在于角色等等。

此外,由于没有发生初始加密,因此很少有其他字符。例如:+

我还看到加密字符串中的换行符很少。为什么这个换行符?它是加密的一部分吗?现在我想弄清楚造成这个问题的字符,我想告诉加密算法不要使用这些字符集。有没有办法我们可以做到这一点?

4

2 回答 2

2

我不熟悉 Java 和 Crypt API,但在我看来您遇到了编码问题。由于加密的输出是二进制的,API 很可能对其进行了编码,并且看起来您base64默认获得了编码。因此,我会查看 API 规范以了解如何更改/设置编码并使用不同的编码,例如十六进制。

您可以通过获取 API 的加密输出并将其传递给 base64 解码器(Linuxbase64工具或在线解码器)来测试假设。

于 2012-12-04T13:19:19.210 回答
0

我需要将此 URL 传递给 JS 函数,在该函数中抛出未终止的字符串常量失败

在我看来,您实际上需要转义此字符串以在 Javascript 中使用。例如参见 Apache Commons StringEscapeUtils.escapeJavascript()

我非常怀疑您是否可以逐个字符地控制加密。这将取决于所使用的算法,但可能会通过查看数据块来生成数据块。毕竟是加密。

于 2012-12-04T12:54:42.317 回答