PHP: сделать случайную строку URL безопасной и отменить все, что сделало ее безопасной - PullRequest
4 голосов
/ 20 ноября 2011

Учитывая случайно сгенерированную строку, как мне преобразовать ее, чтобы сделать ее URL-адрес безопасной, а затем "отменить ее преобразование"?

Функция PHP bin2hex (см .: http://www.php.net/manual/en/function.bin2hex.php), кажетсядля безопасного преобразования строк в безопасные символы URL. Функция hex2bin (см .: http://www.php.net/manual/en/function.hex2bin.php), вероятно, еще не готова. Иногда работает следующая пользовательская функция hex2bin:

function hex2bin($hexadecimal_data)
{
    $binary_representation = '';

    for ($i = 0; $i < strlen($hexadecimal_data); $i += 2)
    {
        $binary_representation .= chr(hexdec($hexadecimal_data{$i} . $hexadecimal_data{($i + 1)}));
    }

    return $binary_representation;
}

Это толькоработает правильно, если входные данные для функции - допустимая строка * 1013. * Если я отправляю ей что-то, что не было результатом bin2hex, оно умирает. Я не могу заставить его выдать исключение в случае, если что-тонеправильно.

Любые предложения, что я могу сделать? Я не настроен на использование hex2bin / bin2hex. Все, что мне нужно, чтобы иметь возможность преобразовать случайную строку в безопасную строку URL, а затем полностью изменить процесс.

Ответы [ 2 ]

9 голосов
/ 20 ноября 2011

То, что вы хотите сделать, это URL кодировать / декодировать строку:

$randomString = ...;

$urlSafe = urlencode($randomString);

$urlNotSafe = urldecode($urlSafe); // == $randomString
1 голос
/ 20 ноября 2011

Вы можете использовать urlencode () / urldecode () .

...