我認爲只有電子郵件地址的哈希值是不安全的,因爲哈希算法是不可逆的,但理論上可能有不正確的電子郵件與正確的哈希值具有相同的哈希值。這對於md5
散列算法是正確的,理論上對於任何其他算法都是如此。
我建議使用某種鹽(額外的散列函數有效載荷)或個人註冊密鑰,並且原因不要使用md5。
用你知道的鹽和「軍事」知道你只能接收來自「軍事」的散列,並且請確保加密是足夠公平的,以通過電子郵件識別新兵。但是這種技術容易受到隨機散列一致性的影響。
也許,確保招募人員的電子郵件真正有效的最佳方式是在「軍事」方面爲招募人員提供唯一的註冊碼,而不是他們需要給予註冊碼和代碼散列以及相應的電子郵件。與每個招聘人員需要提供該註冊碼相比,您將能夠從他的電子郵件和註冊碼中重新計算招聘人員的個人散列碼。
第二種方式的好處是,即使你不能輕鬆地將哈希強制轉換爲電子郵件,如果「軍事」不僅會給你的代碼/哈希對,而是每個代碼的列表散列,其中只有一個是正確的。
更新:妄想高潮的方式。你從「軍隊」接收的數量比新兵數量多兩倍。每個招聘人員都收到唯一的註冊碼。比你需要首先計算註冊碼哈希,並檢查是否有它。比你需要將這個散列與電子郵件結合起來,並檢查你是否有第二個散列。這樣你將無法自己反轉電子郵件。
來源
2012-03-24 13:14:28
lig
你的想法對我來說聽起來很不錯,當然假設新兵有一個電子郵件地址,他們用於一切。 – 2012-03-23 18:36:03