2014-02-09 41 views
0

我有一個網站,用戶可以上傳博客文章。這個網站完全由我構建,沒有框架文檔可以查看。創建獨特的自定義CMS頁面ID的技巧

我一直使用Mysql的主鍵作爲URL中的頁面ID,但我不喜歡這樣做,因爲它向用戶提供了太多信息。 的ID有些會出現這樣的

www.website.com/view?post=97 

YouTube使用的11字母的組合,看起來有點像

watch?v=wEoFhRCUEs8 // *Not a plug* 

我想加密在MD5的ID,但是1),這是太長了2)不是MD5的預期用途。

關於Facebook,stackoverflow,youtube等網站如何加密每個ID,同時確保它是唯一的任何想法?

我也不確定是否最好在mysql中保存一個次要的唯一ID,或者只是通過一個函數轉換它來解析每次需要它時。

感謝

+2

爲什麼不使用['uniqid()'](http://in1.php.net/manual/en/function.uniqid.php)? –

回答

0

我可以爲您提供的邏輯:

首先有一個帖子// 則試圖插入數據庫// 插入數據庫之前// 生成一個隨機字符串// 只要您生成隨機字符串,請檢查數據庫是否採取// 如果採取,生成一個新字符串// 否則使用該字符串// 現在插入所有必要的數據進入數據庫// 完成//

0

您實際上在MD5的正確軌道上。基本上你需要做的是根據帖子ID創建一個簡單的加密。只要它不是安全相關的,我會編寫一個快速的2路哈希算法,允許您將97轉換爲「wEoFhRCUEs8」,反之亦然。這樣你可以稍後查找帖子。

大概的東西,只是位移位的數量和其異或成一個「祕密」的字符串。等等......

如果你想去一個更安全一點嘗試mcrypt的LIB,取決於算法,可以限制輸出尺寸。

如果您沒有進行可逆加密,那麼您別無選擇,只能將您的唯一字符串存儲在您的文章中,以便稍後查看它。