如何创建一个有时间限制的哈希/键?(How to create a time limited has

2019-09-16 17:05发布

我想创建我的应用程序之一,使用时间限制的关键。 该密钥用于在应用程序来解锁的功能性的某些比特。

我的想法至今

生成:加密散列信息的各个位,我需要+密钥生成日期

验证:加密散列信息的各个位我现在需要+日期

如果所有的信息是相同的,日期是一样的,我得到了相同的值

但,

这意味着钥匙只能在特定日期工作。 我要的是一个关键的有效期为在未来24小时(或延长本,几天/周/月)。

我可以延长期限,但总是有期限届满之前生成密钥,像这个月的一个月关键的最后一天的可能性。

首先,这是在进行所有的一种可接受的方式? 如果是这样,我怎么办呢?

据我所知,“曲径通幽”时光倒流会打败系统-但我仍然有兴趣在得到一些意见

我已阅读如何生成没有存储数据的时间有限密钥或密码这是一个类似的问题。

Answer 1:

您可以使令牌的有效期限一部分,并与一个认证整个数据MAC像HMAC:

token = data ":" expiration ":" HMAC(key, data ":" expiration)

为了验证令牌,你需要的是比较给定的过期数据和重新生成MAC与密钥所提供的数据

如果任何所提供参数进行了篡改,为一个需要的秘密密钥来生成一个真实MAC的MAC将是不同的。



文章来源: How to create a time limited hash/key?