如何在jsp中加密/编码url参数

时间:2014-05-30 05:57:23

标签: html jsp url

我想加密一个URL变量,以便用户在jsp中传递信息时无法查看或修改该信息。

这是一个示例网址:

localhost/somewebpage/name.jsp?id=1234&tname=Employee_March_2013

在这里,我想加密或编码参数idtname

有人可以帮我写一个编码/加密然后解密参数的短脚本

修改
我发送此网址作为电子邮件中的附件...当收件人点击此链接时,他们的工资单信息将显示在网页上

4 个答案:

答案 0 :(得分:6)

在不使用任何第三方库的情况下在Base64中编码/解码的最佳方法,您可以使用sun.misc.BASE64Encoder / sun.misc.BASE64Decoder。

try  this snippet 



  String id="1234";
  byte[]   bytesEncoded = Base64.encodeBase64(id.getBytes());//encoding part
  String encoded_id=new String(bytesEncoded);


  String id1=request.getParameter("id");
  byte[] valueDecoded= Base64.decodeBase64(id1);//decoding part
  String decoded_id=new String(valueDecoded);

将'encoded_id'作为url参数发送,而不是传递'id'

答案 1 :(得分:0)

当我们知道您'将此网址作为附件发送到电子邮件中时,您的问题就变得可以解决了...当接收方点击此链接时,他们的工资单已经确认'

这意味着有3个选项:加密,散列和使用随机字符串。

在这种情况下,我建议使用随机字符串(或散列)而不是加密。原因是2倍:

  • 您没有发送潜在的私人数据(例如,谷歌gmail阅读)
  • 随机字符串(或散列)更简单,更短,更安全(对于这种情况)。

假设您有一个包含用户数据的数据库,那么您将为该特定用户/事务生成唯一的随机字符串(或哈希)。然后将这些数据(您可以在内部再次哈希)与您的用户数据一起存储或链接。

现在,您只发送带有与用户数据唯一链接的随机字符串/散列的链接。

查看https://stackoverflow.com/search?q=[jsp]+hash的SO 并且请为了[在这里进入神灵]的爱,请务必阅读Wikipedia about 'salt'等等。
想要在用户付款时出错!

现在,做出选择,进行设置并在遇到问题时返回问题!

修改
实际上......完全“随机”(固定长度)的唯一字符串代替散列,就足够了!更好的是:或两个随机字符串,用于双因素检查:一个用于识别的字符串,一个用于验证。

答案 2 :(得分:0)

URLEncoder.encode(Encryption.encrypt(参数),“ UTF-8”)

答案 3 :(得分:-2)

始终使用POST方法。

即使在POST方法中,用户也可以看到id并可以在浏览器控制台网络标签中进行更改。因此,用户可以看到其他人的电子邮件附件,因为您在评论中提到了这样。

因此,尝试在jsp会话中设置id并获取java servlet代码中的id。 这是非常好的做法。