减少查询字符串长度

时间:2013-12-10 06:34:50

标签: java url-rewriting

在我的网络应用程序中,我们使用PBEWithMD5AndDES加密查询参数,然后使用sun.misc.BASE64Encoder().encode()对其进行编码。它使整个URL的长度超过140个字符。有没有办法不改变加密和编码,我可以将长度减少到80个字符左右?如果我必须更改加密算法和编码以减少长度,我应该使用什么来保持安全性?

2 个答案:

答案 0 :(得分:2)

Base64编码有其已知的开销,并且加密也有开销 - 切换到不同的编码算法可能会减少开销,因此加密算法可能会有所改进 - 但我在这里看不出确定的赌注 - 您可以将其减少为139个字符对于您当前的数据集,但任何其他数据要求可能会再次重复此问题。

我看到两个选项:

  1. 在加密数据之前压缩数据 -
     优点:相对容易开发。
     缺点:可能会影响效果,可能无法充分缩小尺寸。
  2. 使用POST并在响应正文中传递参数,而不是作为查询参数 优点:加密数据未记录在服务器日志(安全性)上,大小为“无限制” 缺点:可能需要更多的开发时间,可能无法在您的环境中完成(外部要求,技术问题等)。
  3. 如果有机会,我会选择#2选项。

答案 1 :(得分:1)

只有您可以减少查询参数名称的长度。 如果您尝试进行任何类型的编码,则会增加查询的长度。

所以我建议使用表单提交而不是基于查询的提交。 或者,请发布您的完整方案,该方案将显示您要在哪些条件下提交数据。