Hashids 生成器 使用指南
salt="my" 編碼 [1,2,3] → 如 「o2fXhV」(解碼回 [1,2,3])。
核心功能
- 把自增數字 ID 編碼成短且不易猜的字串(Hashids)
- 支援設定鹽值與最小長度,鹽不同則編碼結果完全不同
- 可逆:同樣鹽值可把短串解回原數字
- 用於 URL 裡隱藏業務量與防止遍歷爬取
適用場景
- 把數字 ID 編碼成不易猜的短串(如 ?id=laHqu)。
- 對外隱藏自增 ID:把資料庫主鍵 123 編碼成 xoz 之類的短串放在 URL 裡,避免暴露業務量與被遍歷爬取。
使用步驟
- 填入鹽值:這是保密項,洩露後短串可被反推
- 設定最小長度,控制短串的外觀長度
- 輸入要編碼的數字(可多個),點生成得到短串
- 把短串放進 URL,如 ?id=xxxx
- 解碼時用同一鹽值;鹽值一旦更換,歷史短串全部失效,需提前規劃
實用技巧
- 若需要真正防遍歷,應使用不可預測且服務端可校驗的標識(如隨機 UUID)配合授權檢查——授權才是安全的邊界
- 對外隱藏自增 ID:把資料庫主鍵 123 編碼成 xoz 之類的短串放在 URL 裡,避免暴露業務量與被遍歷爬取。
常見問題
- Hashids 可逆嗎?
- 可逆,是編碼非加密;換 salt 結果不同。
- Hashids 能當安全措施嗎?
- 不能。它只是可逆的混淆編碼,拿到 salt 或足夠多的樣本就能反推,設計目標是「讓 ID 不好看」而非「讓 ID 不可猜」。若需要真正防遍歷,應使用不可預測且服務端可校驗的標識(如隨機 UUID)配合授權檢查——授權才是安全的邊界。