2012-10-09 108 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