Шифрование имени файла

Тема в разделе "Как сделать...", создана пользователем Vovandor, 17 май 2009.

Статус темы:
Закрыта.
  1. Vovandor

    Vovandor Создатель

    Регистр.:
    8 янв 2008
    Сообщения:
    46
    Симпатии:
    2
    Возник такой вопрос вот можно ли как нибудь организовать такое дело зашифровать имя файла в md5 а потом когда его выберают в списке он как бы выбиралься под настоящим именем но в списке выглядел бы как зашифрованный
     
  2. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    591
    Учить теорию - md5 не является алгоритмом шифрования.

    Ещё раз и по русски.
     
  3. Vovandor

    Vovandor Создатель

    Регистр.:
    8 янв 2008
    Сообщения:
    46
    Симпатии:
    2
    Дело в том что я хочу сделать так чтобы понастоящему названия этих файлов некто не видел тоесть кликает на свойства картинки чел ему показываеться путь к картинки только имя картинки зашифрованно md5
     
  4. Ceyce

    Ceyce Постоялец

    Регистр.:
    3 ноя 2008
    Сообщения:
    52
    Симпатии:
    51
    А зачем именно md5?:)

    Создаешь файл с названием anti_hacker.php, данный файл будет получать в переменной название файла который надо открыть, то есть так: anti_hacker.php?page=image_of_dog
    Получив навзание файла, скриптом достаешь все содержимое этого файла, не сказав пользователю откуда.

    Если не знаешь как, то место этой теме далеко не в PHP Pro, а скорей в PHP для начинающих;)
     
  5. tostrss

    tostrss

    Регистр.:
    16 окт 2007
    Сообщения:
    771
    Симпатии:
    217
    а если пользователь сделает запрос такого вида

    угадай какой содержимое выдаст скрипт?))


    А смысл? мб тогда проще итак хэшировать имя картинки и пусть она так и лежит? зачем тебе вообще настоящее имя? если уж так хочется, то можно например в БД хранить название картинки и ее хэш. но тут будешь ломать голову над алгоритмом как эту картинку выдавать...
     
  6. Ceyce

    Ceyce Постоялец

    Регистр.:
    3 ноя 2008
    Сообщения:
    52
    Симпатии:
    51
    Если выдаст то что ты думаешь, то программисту надо руки отбить, и послать заново все учить.

    Я вообще то не предлагал пихать переменную $_GET['page'] в какой то там file_get_contents. В скрипте за каждым названием файла находится путь, то есть к примеру для "image_of_dog" будет ../anti_haker_asdf/images/dog.jpg. А если ничего не будет, то функцию file_get_contents вообще не выполнять.
     
  7. tostrss

    tostrss

    Регистр.:
    16 окт 2007
    Сообщения:
    771
    Симпатии:
    217
    насколько я понял тебя, ты предлагаешь замутить проверку на существование локального файла? типо так?
    PHP:
    file_exists('../anti_haker_asdf/images/'.$_GET['page'].'.jpg')
    но как я уже дал выше

    и все, можно будет прочесть любой файл, ноль обрежит правую часть и относительный путь до файла passwd, вернет true в проверке.

    как-то так(с)

    Вообще, какой смысл делать нагрузку, отдавая изображения через пхп? мб проще сменить алгоритм?
     
  8. Ceyce

    Ceyce Постоялец

    Регистр.:
    3 ноя 2008
    Сообщения:
    52
    Симпатии:
    51
    Мдя. Объясняю на пальцах:
    PHP:
    switch($_GET['page']):
        case 
    'image_dog'
            
    $path "/anti_haker_asdf/images/dog.jpg";
        break;
        case 
    'movie_dog'
            
    $path "/anti_haker_asdf/movies/dog.avi";
        break;
        case 
    'game_dog'
            
    $path "/anti_haker_asdf/games/dog.swf";
        break;
    endswitch;

    if(!isset(
    $path)) die("Файл не найден.");
    Если файлов очень много и все время появляются новые - то можно создать таблицу в базе данных, вместе с названиями файлов(к примеру "image_dog") и их путями(к примеру "/anti_haker_asdf/games/dog.jpg").

    И не надо говорить что ты меня не правильно понял;)
    Идея была понятна - скрипт получает название файла(или к примеру id), и судя по названию узнает путь к файлу. А то что делать file_get_contents($_GET['page']) мягко говоря неумно, должно быть всем понятно(по крайней мере в разделе PHP Pro).
     
Статус темы:
Закрыта.