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 中安全传输。