我想将电子邮件发送给包含url + hash的用户 像这样流言蜚语
www.mywebsite.com/user/verify/121#$%3H2%^ 1kj3#$ h2kj1h%$ 3kj%$ 21H
并将此哈希保存到数据库中的用户,如此
ID |电子邮件|哈希 1 | youremail@gmail.com | 121#$%3h2%^ 1kj3#$ h2kj1h%$ 3kj%$ 21h
当用户收到电子邮件时,应检查并与其进行比较并根据情况执行操作。
我的问题很简单,如何为每个用户生成一个唯一的哈希以及如何将它们存储在数据库中。
答案 0 :(得分:3)
如果通过“hash”,您的意思是一个唯一的字符串,您只需使用uuid.uuid4
即可。
>>> import uuid
>>> unique_id = str(uuid.uuid4())
>>> print unique_id
d8814205-f11e-46e1-925e-a878fc75cb8d
>>> # replace dashes, if you like
>>> unique_id.replace("-", "")
我已将此用于需要验证用户电子邮件的项目。
P.S。:它不称为哈希,它被称为唯一ID。散列是另一回事,您可以从给定字符串生成值。 See this question了解更多信息。
答案 1 :(得分:2)
Django有Cryptographic Signing module,有助于为您需要的任何数据生成唯一且可验证的签名。如果您尝试执行此操作以验证请求是否由相应用户完成,则可以使用该库来验证请求,而无需将哈希值存储在数据库中。