排除加密/解密中的一组字符

时间:2012-12-04 12:52:08

标签: java cryptography encryption

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

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

此外,我在加密字符串中看到几个换行符。为什么这条线断了?它是加密的一部分吗?现在我想找出造成这个问题的字符,我想告诉加密器算法不要使用这些字符集。有没有办法实现这个目标?

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

  

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

听起来像你真的需要转义这个字符串以便在Javascript中使用。例如请参阅Apache Commons StringEscapeUtils.escapeJavascript()

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