我在想什麼是縮短網址的最佳算法。我注意到大多數人做了以下事情:最佳網址縮短算法
1)從數據庫中獲取唯一的自動生成的ID。 2)將唯一的自動生成的ID編碼到Base 64值。
它對用戶來說顯而易見的是前一個url的可能性。我能做些什麼來讓用戶難以弄清楚我正在使用哪種算法?
謝謝 TESH
我在想什麼是縮短網址的最佳算法。我注意到大多數人做了以下事情:最佳網址縮短算法
1)從數據庫中獲取唯一的自動生成的ID。 2)將唯一的自動生成的ID編碼到Base 64值。
它對用戶來說顯而易見的是前一個url的可能性。我能做些什麼來讓用戶難以弄清楚我正在使用哪種算法?
謝謝 TESH
可能是你可以使用SHA哈希它
編輯:更好地生成一個隨機數和散列它作爲喬恩指出
首先,它不是把URL中的認證信息(例如用戶名和密碼)一個好主意(用戶就會發現他們的密碼通過簡單地複製/粘貼鏈接,等)。
這就是說,如果你想掩蓋的順序網址添加到縮短服務,您可以使用加密散列函數,如MD5或SHA-1(這被認爲是「不可逆」的輸出,即不可行從輸出中獲得輸入),base-64編碼該輸入,並且例如採用八個字符。散列函數的輸入可能是URL(可能也是當前時間)。
我試過你的想法,我的MD5我的自動生成的整數ID。然後我編碼64.我得到一個長字符串YzRjYTQyMzhhMGI5MjM4MjBkY2M1MDlhNmY3NTg0OW。你是說我拿這個的前8個字?如果我這樣做,那麼我將不得不確保那些前8個網址對於以前的網站不存在嗎? – MindGame 2010-11-19 13:13:03
您認爲用戶會明白以前的URI可能是什麼?而所有的URI實際上都會打開它們所屬的網址。所以我無法獲得用例或者你試圖隱藏算法的原因。即使用戶預測它,然後呢?或者它只是一個編程練習,您想要生成一個簡短的唯一字符串並將其與某個URI相關聯? – 2015-02-03 05:54:31