Отправка данных, зашифрованных с помощью MCRYPT_3DES, в качестве параметра URL - PullRequest
0 голосов
/ 23 мая 2011

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 Ответ

2 голосов
/ 23 мая 2011

Попробуйте использовать urlencode() или http_build_query(), чтобы сделать зашифрованную строку безопасной для передачи в URL.

...