发送使用 MCRYPT_3DES 作为 URL 参数加密的数据


Sending data encrypted with MCRYPT_3DES as a URL parameter

HI,

我正在使用以下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;
?>

尝试使用 urlencode()http_build_query() 使加密字符串在 URL 中安全传输。