2012-10-09 82 views
1

的我需要一个散列函数(也许我不应该称之为“哈希”函数):散列时间戳

1.is仅用于散列时间戳;

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

3.不产生重复的散列值;

4.是否它是一个散列函数,它几乎与散列函数一样快;

PS:关于时间戳的数据类型---图像,作为一个4个字节的“长”类型中C.

这可能吗?

(我需要时间戳是一个秘密 ---事实上,我需要的散列值作为会话ID和原始时间戳作为我的数据库索引。当用户请求的东西与会话ID ,我可以得到时间戳作为索引,以获得请求的信息)

+0

也许我只是不明白这一点,但如果你需要一个反向作用,它不是一个真正的散列函数。如果你想能够扭转它,你不能丢失信息,所以你可以坚持使用时间戳本身。 – Sentry

+0

啊,我认为这是你的问题的一个重要方面,你应该在问题中包括这一点。我仍然认为“哈希”在这里是一个错误的术语,我会提出一些简单的XOR,但这不是很安全,其他人可能有更好的想法。 – Sentry

+0

@Sentry是的,我意识到这实际上不是一个哈希函数:]我错了。但我不会在这里纠正它,因为我认为它提供了直观的意义,我解释下面的实际含义。 – realjin

回答

0

如果你可以跳过#2 murmur哈希可能是一个不错的选择。

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

(2)如果必须隐窝/解密有大多数语言的各种算法的标准实现(例如AES)。这将比哈希慢很多。

如果你实际上并不需要这个来保护数据(这引出了一个问题:为什么要打扰所有的转换?),而只是想制作一些非时间戳的字符串,很容易可逆(由你 - 与其他任何人),然后检查了这个问题:

Rot13 for numbers

+0

嗯,我解释了为什么我需要在上一段中再次提到上述相反的功能。 – realjin