【问题标题】:Hashing of timestamp时间戳的散列
【发布时间】:2012-10-09 14:22:34
【问题描述】:

我需要一个散列函数(也许我不应该称之为“散列”函数):

1.仅用于哈希时间戳;

2.存在反向函数,我可以通过该函数恢复时间戳;

3.不会产生重复的哈希值;

4.不管是不是散列函数,都几乎和散列函数一样快;

PS:关于timestamp的数据类型——C语言中4字节“long”类型的图片。

这可能吗?

(我需要时间戳是一个秘密。---事实上,我需要哈希值作为会话 id 和原始时间戳作为我数据库中的索引。每当用户请求某些东西时使用会话 id,我可以获取时间戳作为获取请求信息的索引。)

【问题讨论】:

  • 也许我只是不明白,但如果你需要一个反向函数,它并不是真正的哈希函数。如果您希望能够反转它,则不能丢失信息,因此您可以坚持使用时间戳本身。
  • 啊,我认为这是您问题的一个重要方面,您应该将其包含在问题中。我仍然认为“哈希”在这里是错误的术语,我会建议一些简单的 XOR,但这不是很安全,其他人可能有更好的想法。
  • @Sentry 是的,我意识到这实际上不是一个哈希函数:] 我错了。但我不会在这里更正它,因为我认为它提供了直观的含义,我在下面解释了实际含义。

标签: hash timestamp


【解决方案1】:

如果您可以跳过 #2 MurmurHash 可能是一个不错的选择:

https://sites.google.com/site/murmurhash/

(2) 如果您必须加密/解密,则大多数语言(例如 AES)都有各种算法的标准实现。这将比散列慢得多。

如果您实际上并不需要它来保护数据(这引出了一个问题:为什么要为任何转换而烦恼?)并且只想制作一些易于反转的非时间戳字符串(由您 - - 和其他人)然后检查这个问题:

Rot13 for numbers

【讨论】:

  • 嗯,我在上一段中解释了为什么我再次需要上面的反向功能。
猜你喜欢
  • 2018-03-31
  • 2020-09-20
  • 1970-01-01
  • 2017-07-21
  • 2022-12-02
  • 2023-04-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多