2019-01-09

UUIDの生成法

世界単位ユニークとされている識別子。

128bitの乱数らしい。

ネットでたまに、数学的にどれだけぶつかる可能性が低くて安心して使えるかというのが解説されてるのを見るけど、肝心のUUIDの生成法を解説してる記事を見たことない。

PostgresqlなんかはUUID型みたいのがあるけど、自動では作ってくれないし。

まあ、いまどきの言語なら高性能らしい乱数成ルーチンがあるから、それを使えばいいんだろうけど、問題はシード値だよな。

ゲームに使う乱数のシードなら、unix時刻+プロセスIDとか、環境依存数字をいくつかひっぱってくる程度でOKだろうけどUUIDに使うにはユニークさが足らないよな。

OSによっては安全乱数を取得する方法提供されてるから、それを使えばいいけど、どのプラットフォームでも共通で使える方法がなさそう。

この類の乱数が絡むのって、けっこう落とし穴があって素人自力でやるとバグったり安全性が低かったりするから、UUIDを生成する方法提供してほしい。

  • anond:20190109143055

    まず、現代のまともなプログラミング言語ならuuidの生成機能はある シードはurandom

    • anond:20190109143309

      外部のライブラリで? 標準関数か、デファクトスタンダートくらいのライブラリが存在しないと安全性が判断できない。

      • anond:20190109143701

        もちろん標準で C/C++だと怪しいかもな(Boostが必要かもしれない) それ以外で存在しないならその言語は欠陥品だから捨てていいよ

記事への反応(ブックマークコメント)

アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん