GET发送的PHP加密参数损坏[重复]
Posted
技术标签:
【中文标题】GET发送的PHP加密参数损坏[重复]【英文标题】:PHP encrypted parameter sent by GET corrupted [duplicate] 【发布时间】:2015-12-22 09:12:20 【问题描述】:我正在通过电子邮件对用户进行安全验证。我正在使用 base64_encode 函数加密用户电子邮件 ID,并将其作为链接发送到用户电子邮件。
例如。 mysite.php?token=sdjfh348+4h8hjheh+f8935ykjhfs_jkfh=938
当用户单击链接时,我提取令牌值并使用 mcrypt_decrypt 函数对其进行解密。这应该与数据库表中的电子邮件匹配。
当我使用 $_GET['token'] 提取令牌值时,我没有得到确切的值,值中的 + 等符号丢失。这会导致错误的解密。
如何解决这个问题?
【问题讨论】:
+
符号在 URI 中具有特殊含义。对它们进行编码。
【参考方案1】:
如果您希望正确发送 GET 变量,则需要对它们进行 URL 编码。
您可以在 PHP 中使用 url_encode 函数。
【讨论】:
以上是关于GET发送的PHP加密参数损坏[重复]的主要内容,如果未能解决你的问题,请参考以下文章
使用 php/mcrypt 加密文件会损坏 docx(和其他 Microsoft Office 2007)文件,但其他文件很好