正确设计: - 前4位:goods_id 明文 base36(直接可读) - 后5位:ticket_id 经 Feistel8 混淆(保护 ticket_id) 编码流程: 1. goods_id → 4位 base36 明文 2. ticket_id → 5位 base36 → Feistel8 → 5位混淆密文 3. 拼接为9位短码 解码流程 O(1): 1. 前4位 base36_decode → goods_id 2. 用 goods_id 派生 key → Feistel8 解密后5位 → ticket_id 3. 无需暴力搜索,goods_id_hint 仅用于校验 优势: - 解码 O(1),无需暴力搜索 - goods_id 明文暴露(可接受,ticket_id 仍被保护) - ticket_id 受 Feistel8 混淆保护 |
||
|---|---|---|
| .. | ||
| admin | ||
| api | ||
| index | ||
| install | ||
| lang | ||
| module | ||
| plugins | ||
| route | ||
| service | ||
| tpl | ||
| AppService.php | ||
| BaseController.php | ||
| ExceptionHandle.php | ||
| Request.php | ||
| common.php | ||
| event.php | ||
| middleware.php | ||
| provider.php | ||
| service.php | ||