2017-09-24 60 views

回答

0

這被稱爲散列ID,一個唯一的標識符通常是從一個唯一的屬性,如數據庫中的一個實體的主鍵生成的。哈希ID通常比通過加密哈希算法(如MD5或SHA-256)創建的典型哈希短,並且與這些不同,哈希ID通常是可逆,這意味着我們可以解碼原始值。它們可以減少應用程序內部實現的風險,從而提高安全性。

結賬hashids.org。本網站提供各種編程語言的實現。

除非您有充分的理由不這樣做,否則請避免在客戶端生成散列ID。通過在服務器上創建哈希ID,您可以保證這些ID是唯一的,並且與您的應用程序存儲數據所通過的任何機制使用的標識符一致。

編輯發表評論 - 這裏就是你可能會跟隨在URL中使用散列ID的過程:

讓我們假設我們使用哈希ID來創建鏈接到用戶配置文件。當我們生成一個包含個人資料鏈接的網頁,我們的應用程序:

  1. 轉換的用戶ID(前5)到哈希ID(如3ac4jx60
  2. 顯示的頁面的鏈接像http://example.com/user/3ac4jx60

如果站點訪問者點擊鏈接時,應用程序將接收到該請求和:

  • 解碼在URL中的散列ID來獲取用戶ID(3ac4jx605
  • 使用用戶ID來獲取相應的記錄並顯示用戶的個人資料
  • +0

    謝謝。但是,頁面的內容是如何被保存在具有唯一標識的網址中的?你可以用一個例子來展示這個實現。 – Gabriel

    +0

    該頁面的內容未在URL中編碼,只有標識要在頁面上顯示的數據的值。例如,當保存一個JSFiddle時,該站點用一個ID將代碼保存在數據庫中,然後將該ID編碼爲供公共使用的散列ID。當用戶訪問小提琴URL時,站點將散列ID解碼回數據庫ID。我更新了我的答案來說明這個過程。 –

    相關問題