在Django Design Patterns中,作者推荐使用 zlib.crc32 来屏蔽 URL 中的主键。经过一些快速测试后,我注意到 crc32 大约有一半时间产生负整数,这似乎不适合在 URL 中使用。zlib.adler32 似乎没有产生负面影响,但被描述为比 CRC “弱”。
- 这种方法(CRC 或 Adler-32)在 URL 中用作主键的替代方法是否安全?(即碰撞安全吗?)
- “较弱”的 Adler-32 是完成这项任务的令人满意的替代品吗?
- 你到底是怎么扭转这个局面的?!即如何从校验和中确定原始主键?