2009-08-03 59 views
0

我已經創建了一個測驗應用程序,該應用程序通過電子郵件向用戶發送結果。我想在URL中包括一個鏈接,用戶可以點擊查看他們的詳細分類我要的URL看起來像這樣:已完成/散列url參數

http://www.mysite.com/quiz/view/32k4k2u4vxcv88xcv8cv0x98c9v7c7v8887cv

顯然不能僅僅散列ID cos很容易反向工程,下一個最好的,最簡單的方法來做這個軸承記住,我必須執行一個sql查詢來比較哈希值?

+0

不要散列任何東西。生成GUID。將GUID作爲私鑰存儲在Db中。 – 2009-08-03 07:58:49

回答

1

您可以將每個實例指定爲GUID,這應該是不可能進行反向工程的(因爲它不依賴於記錄)和唯一的。你在那裏看起來有點像一個GUID(即它看起來是隨機的,不可讀)。

+0

o ja顯然,傻我... – brndnmg 2009-08-03 08:00:28

1

您可以使用SALT來獲得更尊敬的工程感知散列。

define("SALT", "some random string .fsddf09asf9sd0-f9sd0-f9sd-0f9s0a-9f-");  
$hash = md5(SALT.$user_id); 

後來,當用戶試圖訪問的網址,他又一次生成散列,與鹽,並與URL提供的哈希進行比較。

請記住md5已經被破壞了算法。使用SHA哈希算法中的一些。

Regards