Ищете функции шифрования / дешифрования - PullRequest
2 голосов
/ 05 августа 2010

У меня есть массив идентификаторов (например, array(1, 2, 10, 34, 100, 101)), который представляет идентификаторы файлов изображений в базе данных.

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

Таким образом, я подумал зашифровать массив идентификаторов изображений с помощью некоторого ключа, который клиент не знает, и когда клиент нажимает на ссылкуМой PHP-скрипт получит зашифрованную строку, расшифрует ее обратно к идентификаторам картинок и отправит клиенту страницу с картинками.

Существуют ли какие-либо встроенные функции PHP, которые могут выполнять шифрование / дешифрование с помощью пользовательского ключа длямне?

Спасибо !!

Ответы [ 3 ]

2 голосов
/ 05 августа 2010

Как насчет присвоения вашим фотографиям имени в БД, которое не совпадает с идентификатором?

Когда пользователь загружает файл, вы даете файлу случайное имя, например, текущая метка времени и md5.Вы сохраняете имя в своей базе данных и даете ему идентификатор.Таким образом, вы получаете свои последовательные идентификаторы и имена файлов, которые очень трудно угадать.Это и мешает посетителям отображать содержимое папки с изображениями, и вы вполне готовы.

1 голос
/ 05 августа 2010

Если бы я реализовал это, я бы просто дал клиенту случайный хеш, а затем связал бы этот хеш с конкретными идентификаторами в таблице базы данных, например:

link_hash VARCHAR(40) NOT NULL,
link_id INT(11) NOT NULL

(одна или несколько строк на link_hash для нескольких идентификаторов)

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

1 голос
/ 05 августа 2010

PHP имеет расширение mcrypt . Это может сделать это.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...