我在将加密字符串传递到另一个页面时遇到了问题。
就我而言,我想向用户发送一个注册链接,例如
www.xyz.com/reg.php?x=xxxxxxxxxxx
其中 xxxxxxx 在加密的序列化数组中包含电子邮件地址和用户的全名信息作为字符串。
但是,当用户单击链接时,解密后的字符串与加密前的原始字符串不同。
有时,如果部分解密了信息,其余的都是垃圾。
任何人都可以解释为什么会这样?
提前致谢。
我在将加密字符串传递到另一个页面时遇到了问题。
就我而言,我想向用户发送一个注册链接,例如
www.xyz.com/reg.php?x=xxxxxxxxxxx
其中 xxxxxxx 在加密的序列化数组中包含电子邮件地址和用户的全名信息作为字符串。
但是,当用户单击链接时,解密后的字符串与加密前的原始字符串不同。
有时,如果部分解密了信息,其余的都是垃圾。
任何人都可以解释为什么会这样?
提前致谢。
您正在使用 URL 不安全字符,例如+
(来自 base64)。你需要urlencode()
/urldecode()
你的参数。
个人信息根本不应该在url中传递,有hash函数等方法更安全。您描述的这种情况是错误的,请尝试寻求有关如何正确传递 url 参数的安全标准。
还有很多与传递 url 参数有关的漏洞,比如参数污染。
我认为您在数据库中创建了一个字段,例如 act_key .. 当您在此处生成类似 (www.xyz.com/reg.php?x=xxxxxxxxxxx) 的 URL 时,您可以生成带有数字的随机字符串,并将其存储在 act_key 字段中。 。 好的
当用户首先单击激活链接时,您检查并匹配此 act_key .. 如果匹配或找到,则您将获得电子邮件 ID 或其他详细信息...并处理下一步