寻找加密/解密功能

时间:2010-08-05 03:37:01

标签: php encryption

我有一组ID(例如array(1, 2, 10, 34, 100, 101)),表示数据库中图片的文件ID。

我想通过电子邮件发送给客户的链接,这样当他按下此链接时他会看到图片,但我不希望客户看到这些文件ID!

因此,我想用一些客户不知道的密钥加密图片ID数组,当客户点击链接时,我的PHP脚本将获得加密字符串,将其解密回图片ID,并发送客户带图片的页面。

是否有任何PHP内置函数可以使用自定义密钥对我进行加密/解密?

谢谢!

3 个答案:

答案 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。这将是一个单独的挑战。