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

时间:2011-05-22 21:46:15

标签: php security encryption urlencode

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;
?>

1 个答案:

答案 0 :(得分:2)

尝试使用urlencode()http_build_query()使加密字符串安全,以便在网址中传输。