2

我正在使用客户端的浏览器提交 HTTP 请求。对于报告生成,securityToken 作为 POST 提交,对于报告下载,用户浏览器需要提交相同的令牌,这次使用 GET。

您会为实际表示加密数据的 securityToken 推荐什么编码。

我已经尝试过 BASE64 但这失败了,因为标准可以包含在 HTTP GET 中转换为 ' ' (空格)的“+”字符。

然后我尝试了 URL 编码,但这失败了,因为对于 HTTP POST,诸如 %3d 之类的东西是在没有翻译的情况下传输的,但是当浏览器使用数据进行 HTTP GET 时,%3d被转换为“=”。

您会推荐什么编码,以允许通过 HTTP POST 和 GET 安全传输而不会误解数据。

环境是Java,Tomcat。

谢谢你,马克西姆。

4

2 回答 2

2

十六进制字符串。

Apache commons-codec有一个提供此功能的Hex类。

它看起来像这样:http: //youraddress.com/context/servlet?param= ac7432be432b21

于 2010-02-01T11:02:29.250 回答
1

好吧,您可以保留 Base64 并使用此解决方案: Code for decoder/encoding a modified base64 URL

于 2010-02-01T11:13:19.430 回答