发送使用 MCRYPT_3DES 加密的数据作为 URL 参数
您好,
我正在使用以下 PHP 函数加密数据:
$enc_data = mcrypt_encrypt(MCRYPT_3DES, $_key, $_data, MCRYPT_MODE_CBC, $_iv);
如果我按照 $_GET
方法发送加密数据,则无法将其解密,因为 $enc_data
包含 /
和 +
符号:
QBlgcQ2+v3wd8RLjhtu07ZBd8aQWjPMfTc/73TPzlyA=
顺便说一句。我正在使用此函数在 .NET 2010 和 PHP 之间传输数据。
有什么想法如何解决这个问题吗?
解决了! 如果有人想知道如何使用 http_build_query()
<?php
echo "<a href='test.php?".http_build_query($enc_data)."'>test</a>";
$_data = str_replace("%3D", "=", $_GET['enc_data']);
$_data = str_replace("%2B", "+", $_GET['enc_data']);
$_data = str_replace("%2F", "/", $_GET['enc_data']);
echo $_data;
?>
HI,
I am encrypting data with following PHP function:
$enc_data = mcrypt_encrypt(MCRYPT_3DES, $_key, $_data, MCRYPT_MODE_CBC, $_iv);
If I send the encrypted data per $_GET
method, it’s not possible to decrypt it back because the $enc_data
contains /
and +
signs:
QBlgcQ2+v3wd8RLjhtu07ZBd8aQWjPMfTc/73TPzlyA=
Btw. I am using this function to transfer data between .NET 2010 and PHP.
Any ideas how to solve this problem?
Solved!
if someone want to know how to use http_build_query()
<?php
echo "<a href='test.php?".http_build_query($enc_data)."'>test</a>";
$_data = str_replace("%3D", "=", $_GET['enc_data']);
$_data = str_replace("%2B", "+", $_GET['enc_data']);
$_data = str_replace("%2F", "/", $_GET['enc_data']);
echo $_data;
?>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
尝试使用
urlencode()
或http_build_query()
使加密字符串可以安全地在 URL 中传输。Try using
urlencode()
orhttp_build_query()
to make the encrypted string safe for transmission in a URL.