哈希只为给定用户持续一天

时间:2013-01-08 07:46:48

标签: security web cryptography

这种生成和检查哈希的方法是否允许创建只能持续一天的安全用户特定哈希?

generate_token:sha(salt + day_of_year + user)

check_token:sha(salt + day_of_year + user)== get ['token']

这里的想法是创建一个只能持续一天的即时登录令牌。它可以通过电子邮件发送给个人用户。

1 个答案:

答案 0 :(得分:3)

更好的方法是计算到期时间戳(例如当前时间+ 86400秒),然后将该时间戳存储在数据库中,同时将其包含在哈希中:

user | expiry | hash
-----+--------+--------------------------
...  | 123456 | sha(salt + 123456 + user)

然后在检查时,您会看到(a)哈希是否存在,(b)它是否与用户匹配,以及(c)到期时间戳是否已经过去。

这样可以为你提供从发布之日起持续一天的哈希值,而不仅仅是持续到第二天开始的时候。

如果您愿意,它还可以让您轻松地从数据库中删除过期的哈希值,以保持较小的行数。