【问题标题】:Decrypt servlet parameter, encrypted with BasicTextEncryptor解密 servlet 参数,使用 BasicTextEncryptor 加密
【发布时间】:2014-02-20 16:00:51
【问题描述】:

我在使用 BasicTextEncryptor 时遇到了一点问题。

字符串结果在加密后以 BASE64 编码。在我的例子中,我想加密一个字符串,并通过 URL 参数将它发送到一个 servlet。在 servlet 中,我想解密此参数并获取原始字符串。问题是有时加密的字符串包含一些字符(如空格),而在 URL 中这些字符用其他符号表示(例如 +)。在这种情况下,我不能再解密那个字符串了,因为它不再是同一个了。

谁能给我一个提示如何解决这个问题?我这样做是为了通过 servlet 链接执行电子邮件确认,如果有人可以建议我另一种解决方案,将不胜感激。

【问题讨论】:

  • 你是如何使用这个参数调用servlet的?
  • 通过 URL /myservlet?id=
  • 您正在使用 GET 请求。改用 POST 请求并对参数进行编码。
  • BASE64 编码值应以 HEX 形式发送。那么就没有更多的url编码问题了。
  • 你能给我一个例子/链接吗?谢谢

标签: java servlets encryption base64


【解决方案1】:

最后问题比我想象的要简单:Java URL encoding of query string parameters

我只是这样编码字符串:

String url = "http://example.com/query?q=" + URLEncoder.encode(MyString, "ISO-8859-1");

然后,我将从 servlet 请求中获取的字符串将默认解码为正确的字符串。

【讨论】:

    猜你喜欢
    • 2011-12-06
    • 2023-04-05
    • 2016-07-10
    • 1970-01-01
    • 2011-10-19
    • 1970-01-01
    • 2013-12-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多