Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-难以通过字符串加密将加密字符串传递到另一个页面_Php_Encryption - Fatal编程技术网

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

PHP-难以通过字符串加密将加密字符串传递到另一个页面,php,encryption,Php,Encryption,机智涉及 将加密字符串传递到另一个页面时遇到问题 在我的例子中,我想向用户发送一个注册链接,例如 www.xyz.com/reg.php?x=xxxxxxxxxx 其中xxxxxxx以字符串形式在加密的序列化数组中包含电子邮件地址和用户全名信息 但是,当用户单击链接时,解密的字符串与加密前的原始字符串不同 有时,如果信息被部分解密,其余的则是垃圾 任何人都能解释为什么会这样 提前谢谢 您正在使用URL不安全字符,如+(来自base64)。您需要urlencode()/urldecode()您的参

机智涉及

将加密字符串传递到另一个页面时遇到问题

在我的例子中,我想向用户发送一个注册链接,例如

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

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

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

有时,如果信息被部分解密,其余的则是垃圾

任何人都能解释为什么会这样


提前谢谢

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

您使用的是URL不安全字符,如
+
(来自base64)。您需要
urlencode()
/
urldecode()
您的参数。

个人信息根本不应该在url中传递,有哈希函数和其他更安全的方法。您描述的这个场景是错误的,请尝试寻找有关传递url参数的正确方式的安全标准


此外,还有许多与传递url参数有关的漏洞,如参数污染

个人信息根本不应该在url中传递,有哈希函数和其他更安全的方法。您描述的这个场景是错误的,请尝试寻找有关传递url参数的正确方式的安全标准


此外,还有许多与传递url参数有关的漏洞,如参数污染

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

当用户首先单击激活链接时,您将检查并匹配此act_键。。 如果它匹配或找到,那么您将获得电子邮件id或其他详细信息。。。
然后处理下一个stap

我想您应该在数据库中创建一个字段,比如act_key。。 当您在此处生成URL(www.xyz.com/reg.php?x=xxxxxxxxxx)时,您可以生成带有数字的随机字符串,并将其存储在act_键字段中。。。 好的

当用户首先单击激活链接时,您将检查并匹配此act_键。。 如果它匹配或找到,那么您将获得电子邮件id或其他详细信息。。。
然后处理下一个stap

而不是所有的信息,你应该传递一个标记,映射回数据库中的信息。而不是所有的信息,你应该传递一个标记,映射回数据库中的信息。嗯,我不知道这件事。。也许这就是我需要的。谢谢你的帮助。嗯,我不知道这件事。。也许这就是我需要的。谢谢你的帮助。现在我想发送一个链接,自动填充用户端的电子邮件地址和收件人姓名文本框。。之后,用户只需单击register and send。我的第一个想法是,我将这些电子邮件地址和全名插入数据库,并分配一个映射的令牌。。正如你所说的。然而,我尝试了懒惰的方法,我不知道传递电子邮件地址(即使是加密的)不是正确的做法。。无论如何谢谢你的建议,但你说:“n其中xxxxxxx包含电子邮件地址和用户的全名信息,在一个加密的序列化数组中作为字符串。”。。一旦我序列化了数组,我就对它进行加密。。然而,正如jimpic所说,我没有使用urlencode,并且在加密字符串中可能有不安全的字符。。这会引起问题。这可能解释了为什么20个加密字符串中可能有1个可以解密,其余的则无法解密。现在我想发送一个链接,自动填充用户端的电子邮件地址和收件人姓名文本框。。之后,用户只需单击register and send。我的第一个想法是,我将这些电子邮件地址和全名插入数据库,并分配一个映射的令牌。。正如你所说的。然而,我尝试了懒惰的方法,我不知道传递电子邮件地址(即使是加密的)不是正确的做法。。无论如何谢谢你的建议,但你说:“n其中xxxxxxx包含电子邮件地址和用户的全名信息,在一个加密的序列化数组中作为字符串。”。。一旦我序列化了数组,我就对它进行加密。。然而,正如jimpic所说,我没有使用urlencode,并且在加密字符串中可能有不安全的字符。。这会引起问题。这可以解释为什么20个加密字符串中可能有1个可以解密,而其余的则无法解密。