PHP - 难度通过字符串加密将加密的字符串传递到另一个页面

时间:2012-05-18 08:02:35

标签: php encryption

关于Best way to use PHP to encrypt and decrypt passwords?

的问候

我遇到了将加密字符串传递到另一个页面的问题。

就我而言,我想向用户发送注册链接,例如

www.xyz.com/reg.php?x=xxxxxxxxxxx

其中xxxxxxx包含加密序列化数组中的电子邮件地址和用户的全名信息为字符串。

但是,当用户单击链接时,解密的字符串与加密前的原始字符串不同。

有时信息部分解密,其余部分是垃圾。

任何人都可以解释为什么会发生这种情况?

提前谢谢。

3 个答案:

答案 0 :(得分:2)

您正在使用网址不安全的字符,例如+(来自base64)。您需要urlencode() / urldecode()您的参数。

答案 1 :(得分:1)

个人信息不应该在网址中传递,有哈希函数和其他更安全的方法。您描述的这种情况是错误的尝试寻求安全标准,如何正确的方式传递url参数。

还有很多漏洞与传递url参数有关,比如参数污染。

答案 2 :(得分:0)

我认为你在数据库中创建一个像act_key一样的字段。  当您在此处生成URL(www.xyz.com/reg.php?x=xxxxxxxxxxx)时,可以生成带数字的随机字符串,并将其存储在act_key字段中... 好的

当用户点击激活链接时,首先检查并匹配此act_key ..  如果匹配或找到,那么你会收到电子邮件ID或其他详细信息...  并处理下一个订单