有没有已知的哈希算法,对于相似的输入,它返回相似的输出? 我需要它来创建“票”,而不需要对照数据库检查它们。我的想法是创建令牌携带(userid和timestamp)(不可恢复),并将此令牌与userid一起传递,并且能够检查令牌是否已给定userid,例如,是否在10分钟前创建-
例如,前4个字节上的更改提供了显著不同的标记,但随着最后4个字节的更改,哈希函数返回类似的标记。
嗯,我可能会试试 HMACs :生成只有应用程序知道的密钥。每当你需要分发一张新的“票”,
然后将三重信息(用户ID、时间戳、摘要)分发给其他方。为了验证这样一张票,只需做同样的事情:
生成的摘要必须匹配,否则会有人试图向您提供一张被篡改的票据。这是安全的,因为只有您的应用程序知道密钥,因此可以生成合适的HMAC摘要。由于时间戳信息对您来说很简单,所以您可以针对某个时间窗口或其他任何内容进行所有必需的测试。