我有一个in数组(例如array(1, 2, 10, 34, 100, 101)),它代表数据库中图片的文件in。
我想通过电子邮件发送一个链接给客户,这样当他按下这个链接时,他将看到图片,但我不想让客户看到这些文件ids!
因此,我想用一些客户不知道的密钥加密图片it数组,当客户单击链接时,我的PHP脚本将获得加密的字符串,将其解密为图片it,并向客户发送包含图片的页面。
有没有PHP内置的函数可以用自定义密钥进行加密/解密?
谢谢!!
发布于 2010-08-05 11:40:36
PHP有mcrypt扩展。它可以做到这一点。
请注意,在您描述的方法中,当您向客户发送页面时,他将看到图片in。
发布于 2010-08-05 12:03:11
如果在db中给你的图片起一个不同于id的名字呢?
当用户上传一个文件时,你给文件起一个随机的名字,比如当前的时间戳和md5。你将名字存储在你的数据库中,并给它一个id。通过这种方式,您可以获得连续的ids和很难猜测的文件名。这样就可以防止访问者显示图片文件夹的内容,这样你就可以很好地使用它了。
发布于 2010-08-05 11:41:25
如果是我实现这一点,我会给客户一个随机的散列,然后将该散列与数据库表中的特定I关联起来,如下所示:
link_hash VARCHAR(40) NOT NULL,
link_id INT(11) NOT NULL(每个link_hash一行或多行以允许多个ID)
正如Borealid在他的回答中提到的,您还需要确保当他们查看页面时,他们也不会看到图片URL中的ID。这将是一个单独的挑战。
https://stackoverflow.com/questions/3411572
复制相似问题