はじめに 分散システムやってるとどこからでも安全に採番できる強い衝突耐性をもったuuid的なほげほげidがほしくなります。 世にほげほげidはたくさんありますが、適当にREADMEとかよんでもみんな「これイケてるで!」「uuidとかより文字数すくないで!」「sortableでうれしいで!」とかそういうことばっかいっててどの程度衝突耐性があるのかよくわからん問題があります 今回はほげほげidの構成要素の調査と衝突耐性をざっとまとめて比較しようと思います。 比較する項目 ざっくり random bit数 衝突耐性 ソートできるか その他メモ みたいな感じで整理して比較していきます。 衝突耐性は 衝突確率P=0.5のときの必要な試行回数 乱数以外の識別要素 の2つで評価します。たとえばtimestampとか入れてるやつは暗号学的な安全性には寄与しないけど実用上はある精度の時刻で識別できて衝突耐性