Django Design Patternsでは、著者は zlib.crc32 を使用して URL の主キーをマスクすることを推奨しています。いくつかの簡単なテストの後、crc32 が約半分の時間で負の整数を生成することに気付きました。これは URL での使用には望ましくないと思われます。zlib.adler32 はネガを生成するようには見えませんが、 CRC よりも「弱い」と説明されています。
- この方法 (CRC または Adler-32) は、主キーの代替として URL で安全に使用できますか? (つまり、衝突に対して安全ですか?)
- 「より弱い」Adler-32 は、このタスクの満足のいく代替手段ですか?
- 一体どうやってこれを逆にするの!? つまり、チェックサムから元の主キーをどのように判断するのでしょうか?