【问题标题】:php encoding url parameters with lowercase lettersphp用小写字母编码url参数
【发布时间】:2013-04-30 14:44:07
【问题描述】:

我正在努力加密 url 参数。例如,我有以下网址:

http://www.domain.com/show_user.php?uid=45&s=photos

http://www.domain.com/show_user.php?uid=454&s=information

现在我不希望用户看到参数 'uid' 和 's' 的普通值,所以我使用 base64_encode 对其进行了加密。

http://www.domain.com/show_user.php?uid=NDU=&s=cGhvdG9z

http://www.domain.com/show_user.php?uid=NDU0&s=aW5mb3JtYXRpb24=

但现在我的问题是 URL 中有一些大写字母。在我的错误日志中,我发现了由仅使用小写字母请求 url 引起的错误:

http://www.domain.com/show_user.php?uid=ndu=&s=cghvdg9z

这会导致错误,因为字符串无法再解密。

这显然不是加密 url 中的参数的非常聪明的解决方案。你有什么建议?你使用什么加密方法?哪一个只创建小写字母?

我已经非常感谢您的任何帮助:)

最好的问候,

弗莱迪

【问题讨论】:

  • base64 编码是不是加密
  • 任何可能对这些 URL 值感兴趣的人都会识别出 base64 编码 并将其解码。别人不会在意的。你为什么要这样做?
  • 只是好奇:In my error log I find errors which are caused by requesting the url with only lowercase letters - 这些是什么错误?
  • 听起来可能很愚蠢,我同意@SeanBright,但您可以使用 base32,全部小写,可能会很快解决您的问题...
  • 如果您展示了生成这些 URL 的代码,我们可能提供的不仅仅是推测。此外,base64 编码比散列更远离加密。

标签: php url encryption


【解决方案1】:

您的代码中必须有一个strtolower(),地址本身不能小写。检查生成这些编码字符串的代码。

另外 - 正如该评论中提到的,它不是加密。从功能上讲,这实际上是需要加密的,还是只是模糊的?

【讨论】:

  • 这应该作为评论发布,而不是答案。
  • 我既同意又不同意,@dnLL。不,它没有提供确切的特定代码。是的,它确实解决了 OP 的问题,没有 BS。这可能是推测性的,但很简单,问:“我的代码由于小写编码而失败” 答:“停止让你的 URL 小写。”只是我的 2 美分!
【解决方案2】:

如果您只有这两个参数,我建议您自己编写一个编码和编码函数。您也可以将所有参数压缩为一个,然后使用拆分字符串函数再次对其进行解码。

【讨论】:

    【解决方案3】:

    如果您不想共享此信息以某种方式保密,请创建表以将某些 id 映射到此信息,并从这些条目生成页面。但是您对编码的需求并不清楚,所以请详细说明。

    【讨论】:

      猜你喜欢
      • 2012-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多