我有一组ID(例如array(1, 2, 10, 34, 100, 101)
),表示数据库中图片的文件ID。
我想通过电子邮件发送给客户的链接,这样当他按下此链接时他会看到图片,但我不希望客户看到这些文件ID!
因此,我想用一些客户不知道的密钥加密图片ID数组,当客户点击链接时,我的PHP脚本将获得加密字符串,将其解密回图片ID,并发送客户带图片的页面。
是否有任何PHP内置函数可以使用自定义密钥对我进行加密/解密?
谢谢!
答案 0 :(得分:2)
如果给db中的图片命名与id不同?
当用户上传文件时,您会为文件提供一个随机名称,例如当前时间戳和md5。您将名称存储在数据库中并为其指定ID。通过这种方式,您可以获得顺序ID,并获得很难猜到的文件名。 那并且阻止访问者显示图像文件夹的内容,并且你已经完成了设置。
答案 1 :(得分:1)
PHP具有mcrypt扩展名。它可以做到这一点。
请注意,在您描述的方法中,当您向他发送页面时,客户将看到图片ID。
答案 2 :(得分:1)
如果是我实现这个,我只是给客户一个随机哈希,然后将该哈希与数据库表中的特定ID相关联,如下所示:
link_hash VARCHAR(40) NOT NULL,
link_id INT(11) NOT NULL
(每个link_hash一行或多行允许多个ID)
正如Borealid在他的回答中所提到的,你还需要确保当他们查看页面时,他们也不会在图片网址中看到ID。这将是一个单独的挑战。