如果我将商品存储在数据库中,用户可以在购买后下载这些商品,我如何为每个用户提供不同的链接?
我在想,正确的做法是:给他们一个链接,例如根据他们的用户 ID 以某种方式散列。然后,当我处理我给他们的链接时,我只是反转散列函数获取原始链接。这是正确的做事方式吗?
如果这不是正确的方法,有人可以指出正确的方向吗?
最佳答案
哈希函数并不意味着被逆转。我建议阅读 lighttpd mod_secdownload
实现
它为您提供一个 protected 链接,在一定时间内有效。由于散列无法反转,因此您需要在链接中传递信息的散列以及明文信息(如果可能)。例如:
http://somesite.com/download.php?hash=<md5($secretkey.$userId.$documentId)>&usrId=<$userId>&documentId=<$documentId>
当您收到下载请求时,处理 has,将其与给定的进行比较,如果相等则认为它已通过验证。
关于php - 创建个性化下载链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9854662/