Шифрование ссылки

Тема в разделе "PHP", создана пользователем deloest, 9 июл 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. deloest

    deloest Создатель

    Регистр.:
    27 июн 2009
    Сообщения:
    22
    Симпатии:
    3
    помогайте, есть линк к примеру: test.ru/link.php?id=1&ids=3 как его перекурожить по средству пхп чтоб он показывался пользователю как test.ru/LdiowfWJfaslfjoqw (чтото типа этого), и при нажатии грузился так же линк test.ru/LdiowfWJfaslfjoqw но определял переменные id=1 и ids=3

    ЗЫ. сори не научили меня нормально обьяснять, как смог написал) :read:
     
  2. antidote

    antidote

    Регистр.:
    21 янв 2008
    Сообщения:
    167
    Симпатии:
    42
    Ну теоретически можно перевести link.php?id=1&ids=3 в string, потом в набор битов, сделать какой-нибудь простой XOR и снова в строку перевести. Измененную строку уже скармливать. Повторный XOR над измененной строкой даст начальную комбинацию битов.

    Хотите чтоб для каждого пользователя адрес был уникальный, тогда например пусть идентификатор сессии учавствует в битовых манипуляциях.

    Подозреваю, что идея далеко не самая простая.
     
  3. deloest

    deloest Создатель

    Регистр.:
    27 июн 2009
    Сообщения:
    22
    Симпатии:
    3
    мало что понял, можешь показать на коде?
    ссылка должна шифроваться не для каждого пользователя, а единажды, я впринцыпе могу это реализовать подключив сюда sql но вдруг бывают легче варианты...
     
  4. antidote

    antidote

    Регистр.:
    21 янв 2008
    Сообщения:
    167
    Симпатии:
    42
    А может так?

    PHP:
    <?php
    $str1 
    'link.php?id=1&ids=3';
    echo 
    'Исходная строка: '.$str1'<br/>';
    $str2 base64_encode($str1);
    echo 
    'Кодированая строка: '.$str2'<br/>';
    $str2 base64_decode($str2);
    echo 
    'Декодированая строка: '.$str2'<br/>';
    ?>
    итог

    Исходная строка: link.php?id=1&ids=3
    Кодированая строка: bGluay5waHA/aWQ9MSZpZHM9Mw==
    Декодированая строка: link.php?id=1&ids=3
     
    deloest нравится это.
  5. deloest

    deloest Создатель

    Регистр.:
    27 июн 2009
    Сообщения:
    22
    Симпатии:
    3
    я тебя люблю, именно это мне и нужно было)

    Добавлено через 5 минут
    вот только еще 1 вопросик, пользователь видит ссылку: test.ru/bGluay5waHA/aWQ9MSZpZHM9Mw== и переходит на нее, и нифига не открывается. Что сделать подскажи чтобы при открывании Зашифрованной ссылки, открывалась исходная в новом окне? но чтоб в браузере было прописана зашифрованная ссылка?
     
  6. antidote

    antidote

    Регистр.:
    21 янв 2008
    Сообщения:
    167
    Симпатии:
    42
    Тут очевидно надо сделать следующее:
    1. Через htaccess сделать так чтоб строка bGluay5waHA/aWQ9MSZpZHM9Mw==
    передавалась обработчику шифра. Например
    RewriteRule ^(.*) decoder.php?coded_url=$1 [L]
    2. В самом decoder.php ты ты декодируешь строку и обрабатываешь ее, присваивая нужные тебе $_GET['id'] и т.д.
    3. Далее уже работает сам движок

    По-моему ничего не забыл.
     
    deloest нравится это.
  7. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    884
    Симпатии:
    540
    Если нужно скрыть переменные то лучше не использовать base64, а какой-нить алгоритм апример http://habrahabr.ru/blogs/php/61309/
    Затем использовать htaccess.
     
  8. Drak0n4ik

    Drak0n4ik Создатель

    Регистр.:
    8 май 2009
    Сообщения:
    25
    Симпатии:
    1
    Можно всю нужную инфу для посыла писать в массив, его запаковать функцией serialize(), передать и собрать unserialize()`ом на другой странице в исходный массив. Тогда не надо использовать .htaccess
     
  9. deloest

    deloest Создатель

    Регистр.:
    27 июн 2009
    Сообщения:
    22
    Симпатии:
    3
    Всем спасибо, воспользовался способом который предложил: antidote
     
Статус темы:
Закрыта.