$ _GET的结果已损坏

时间:2016-09-07 11:29:36

标签: php url

我正在开发一个密码系统,在那里发送电子邮件,他们必须点击链接才能转到重置密码的页面。

链接中有一些信息是加密的,然后据说在另一方面进行了解密。 这是一个例子 http://www.somewebpage.com?p=8e428904890e31a93c563e1f18c11ff6&c=U2FsdGVkX1+LdNFKzCZxRAGPYYA9MGzAhAUh/wLJ3T4=

现在我使用$ _GET [' c']来获取加密数据。 然后我使用我的Decrypt代码解密它。

现在问题就在于此 如果我这样做就可以了

Decrypt($key,"U2FsdGVkX1+LdNFKzCZxRAGPYYA9MGzAhAUh/wLJ3T4=");

它让我回到原始文本。

但如果我这样做。它不起作用

Decrypt($key,$_GET['c']);

它只是给了我一些受损的角色。

问题是,当我使用$ _GET [' c']时,为什么我的加密例程不起作用,如果我直接输入字符串就可以正常工作。

网址是否添加了隐藏的字符? 如果是这样,我可以删除任何添加的内容。

1 个答案:

答案 0 :(得分:2)

加密数据包含一些不能正确通过浏览器的字符。

当你生成密钥时,尝试使用函数urlencode()

echo '<a href="mycgi?foo=', urlencode($encryptdata), '">';