使用 Python 和 Django,我将让我的用户将基于 pdf 的礼物送给他们的 friend ,该 friend 可以通过从电子邮件链接进入我的网站来领取 pdf。
这是计划
用户给了他的 friend 一个礼物,输入 friend 的电子邮件
在后台保存一个礼品模型,其中包含保存时生成的唯一哈希码。
friend 收到电子邮件,提供下载 pdf 的链接,类似于 (
www.mydomain.com/gift/<hash code here>
)点击邮寄链接时,系统会检查是否存在具有给定哈希码的礼品模型。
如果是,则开始下载,否则为 404。
这是解决这个问题的聪明方法吗?如果是这样,您会推荐什么哈希函数?有趣的是/gift/是对公众开放的,如果幸运地找到一个链接,任何人都可以领取它。我计划通过接收者的名字加上礼物模型的 pk 来提供哈希函数
最佳答案
不需要使用哈希,你只需要一个随机 token 。
- 创建一串随机字符
- 如果它已经被使用(不太可能)重复第 1 步
让字符串足够长,你会很高兴很难猜到
生成随机字符串的简单方法是
>>> import os
>>> os.urandom(10).encode('hex')
'3fa0c2f72ff275f48d66'
>>> os.urandom(20).encode('hex')
'ecc1143b3fc90bd99bcd609b326694f13291e3d1'
>>> os.urandom(30).encode('hex')
'd4a9a2cd7b48eca831e9805e68dd6f7db7275b654e55cdec603631a5a355'
>>>
关于python,哈希函数选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2337825/