关于Best way to use PHP to encrypt and decrypt passwords?
的问候我遇到了将加密字符串传递到另一个页面的问题。
就我而言,我想向用户发送注册链接,例如
www.xyz.com/reg.php?x=xxxxxxxxxxx
其中xxxxxxx包含加密序列化数组中的电子邮件地址和用户的全名信息为字符串。
但是,当用户单击链接时,解密的字符串与加密前的原始字符串不同。
有时信息部分解密,其余部分是垃圾。
任何人都可以解释为什么会发生这种情况?
提前谢谢。答案 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或其他详细信息... 并处理下一个订单