使用Python和Django,我会让我的用户给他们的朋友提供基于pdf的礼物,所述朋友可以通过电子邮件链接进入我的网站来索取pdf。
这是计划
用户给他的朋友一个给,给朋友发电子邮件
在后台保存礼品模型,该模型将在保存时包含唯一生成的哈希代码。
朋友收到该电子邮件,前提是下载pdf的链接(www.mydomain.com/gift/<hash code here>
)
单击邮寄链接时,系统会检查是否存在具有给定哈希码的礼品模型。
如果是这样下载开始,否则为404。
这是一种解决这个问题的聪明方法吗?如果是这样,你会推荐什么样的散列函数?有趣的是,/ gift /对公众开放,如果以某种方式幸运地找到链接,任何人都可以声称它。我打算用接收器的姓氏加上礼物模型的pk来提供哈希函数
答案 0 :(得分:6)
不需要使用哈希,只需要一个随机令牌。
让字符串足够长,以至于你很高兴很难猜到
生成随机字符串的简便方法是
>>> import os
>>> os.urandom(10).encode('hex')
'3fa0c2f72ff275f48d66'
>>> os.urandom(20).encode('hex')
'ecc1143b3fc90bd99bcd609b326694f13291e3d1'
>>> os.urandom(30).encode('hex')
'd4a9a2cd7b48eca831e9805e68dd6f7db7275b654e55cdec603631a5a355'
>>>
答案 1 :(得分:1)
UUID非常随机
In [13]: import uuid
In [14]: uuid.uuid4().hex
Out[14]: 'f7a7667e94574e32b3589f84ca35a98d'
答案 2 :(得分:0)
它可能无法完全按照您的意愿行事,但这个项目将是一个很好的起点: