2011-02-23 15 views
0

給出一個字符串如何創建一個唯一的標識符/哈希該字符串,使人們可以追蹤串的發生沒有實際登錄原字符串。如何散列/加密的字符串,以保護私人信息,但仍使字符串可比

的URL例如 「www.mylittlesecret.com」 應該顯示爲 「XYZ123」(hascode該字符串)。因此,網址總是翻譯成xyz123,但從xyz123無法確定網址。

很抱歉,如果那些是錯誤的條款。如果有人能爲我提供正確的關鍵詞,我很樂意閱讀更多有關「哈希」的內容。

+0

的可能DUP:創建您自己的TinyURL的(http://stackoverflow.com/q/1075409/338665)。 (它至少有這些問題的答案)... – ircmaxell 2011-02-23 21:46:25

+1

一個重要的問題是,是否需要兩個字符串不能產生相同的散列。這被稱爲「碰撞」。如果這是一項要求,那麼您可能會看到比「xyz123」更長的哈希。如果需要避免碰撞,請查看「加密散列函數」,特別是SHA-2系列函數。 – 2011-02-23 21:49:12

+0

謝謝,我不能確定這是否是一項要求。我不希望碰撞成爲一個問題,因爲我每個用戶只有數百個字符串,碰撞的影響不會很大。但是,無論如何,我會看看SHA-2,也許它不會傷害到使用。 – Cilvic 2011-02-24 06:56:52

回答

3

如果使用散列算法SHA-1一樣,你會得到期望的行爲。您將無法從哈希中重新構建您的URL,但是您可以比較哈希值並查看這些URL是否相同。

但如果有人想找出網址,你有,你會受到字典攻擊類似,其中用戶只需花費所有已知的Web站點的列表,並認爲如果散列匹配。所以這可能是值得注意的。