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)配合授权检查——授权才是安全的边界。