如果我在数据库中存储了用户购买后可以下载的项目,那么如何为每个用户提供不同的链接呢?
我考虑过,是否正确的做法是:根据他们的用户ID生成一个哈希链接。然后,当我处理他们所得到的链接时,只需反转哈希函数即可获得原始链接。这是做事情的正确方式吗?
如果这不是正确的方法,能否有人指点一下?
我考虑过,是否正确的做法是:根据他们的用户ID生成一个哈希链接。然后,当我处理他们所得到的链接时,只需反转哈希函数即可获得原始链接。这是做事情的正确方式吗?
如果这不是正确的方法,能否有人指点一下?
哈希函数并不是用来进行反向操作的。我建议你阅读一下lighttpd mod_secdownload
的实现方式。
它可以为你生成一个受保护的链接,只在特定时间内有效。因为哈希无法反向操作,所以你需要将信息的哈希值与明文信息(如果可能的话)一起包含在链接中。例如:
http://somesite.com/download.php?hash=<md5($secretkey.$userId.$documentId)>&usrId=<$userId>&documentId=<$documentId>