正确设计: - 前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 混淆保护 |
||
|---|---|---|
| .. | ||
| phase4_1_feistel_test.php | ||