Algorithm 每N分钟生成一个唯一标识符,如哈希。但它们必须在N分钟内保持一致,而不存储数据

Algorithm 每N分钟生成一个唯一标识符,如哈希。但它们必须在N分钟内保持一致,而不存储数据,algorithm,Algorithm,我想创建一个唯一的标识符,比如每N分钟创建一个小的散列,但是结果应该在N个时间段内相同,而不存储数据 N分钟为10时的示例: 0 > 10 = 25ba38ac9 10 > 20 = 900605583 20 > 30 = 6156625fb 30 > 40 = e130997e3 40 > 50 = 2225ca027 50 > 60 = 3b446db34 在第1分钟和第10分钟之间,我得到了“25ba38ac9”,但是在第10分钟和第20分钟之间,我

我想创建一个唯一的标识符,比如每N分钟创建一个小的散列,但是结果应该在N个时间段内相同,而不存储数据

N分钟为10时的示例:

0 > 10  = 25ba38ac9
10 > 20 = 900605583
20 > 30 = 6156625fb
30 > 40 = e130997e3
40 > 50 = 2225ca027
50 > 60 = 3b446db34
在第1分钟和第10分钟之间,我得到了“25ba38ac9”,但是在第10分钟和第20分钟之间,我得到了“900605583”等等

我没有开始/示例代码,因为我没有可以用来创建所需结果的想法或算法


我没有在这个问题中提供特定的标记或语言,因为我对逻辑感兴趣,而不是最终的代码。但我很欣赏文档化代码作为示例。

选择您最喜欢的哈希函数
h
。选择您最喜欢的字符串
。要在时间
t
获得哈希,请将
t
除以
N
的欧几里德商附加到
sugar
,并对其应用
h

python中的示例:

h=lambda x:hex(abs(散列(x)))
糖=‘萨米尔’
def哈希值为分钟(t,N=10):
返回h(糖+str(t//N))
对于范围(0,30,2)内的t:
打印(t,散列时间为分钟(t,10))
输出:

0 0xeb3d3abb787c890
2 0xeb3d3abb787c890
4 0xeb3d3abb787c890
6 0xeb3d3abb787c890
8 0xeb3d3abb787c890
10 0x45e2d2a970323e9f
12 0x45e2d2a970323e9f
14 0x45e2d2a970323e9f
16 0x45e2d2a970323e9f
18 0x45e2d2a970323e9f
20 0x334dce1d931e5da8
22 0x334dce1d931e5da8
24 0x334dce1d931e5da8
26 0x334dce1d931e5da8
28 0x334dce1d931e5da8
此哈希方法的弱点,并建议改进 当然,没有什么能阻止你在未来输入时间。所以你可以很容易地回答这个问题“在一个小时内哈希值是多少?”

如果您希望未来的散列不可预测,可以将值
t//N
与依赖于时间的真实值相结合,该值事先未知,但我们会记录下来

有两个著名的时间序列符合这一标准:与气象有关的值和与股市有关的值


另请参见2008年的
xkcd
漫画:

我想知道,如果我是正确的(currentTimeInMinute/N),我们怎么会知道N分钟前的标识符是什么,而不知道它是什么:OIf I is correct(currentTimeInMinute/N)也可以用作散列