UUIDジェネレーター
バージョン1、3、4、5、6、7のUUIDを生成します。バージョンを選択し、オプションを設定して生成をクリックしてください。すべての処理はブラウザ内でローカルに行われます。
1 つを読み解く
UUIDバージョン解説
| バージョン | 方式 | 用途 |
|---|---|---|
| v1 | タイムスタンプ(100ns) + ランダムノード | 時間順ID。作成時刻を埋め込み |
| v4 | 暗号学的ランダム | 汎用ユニークID - 最もポピュラー |
| v5 | 名前空間 + 名前のSHA-1ハッシュ | v3と同様だがSHA-1を使用(v3より推奨) |
| v6 | v1タイムスタンプの並べ替え | 時間ベースIDのデータベースフレンドリーなソート |
| v7 | Unixミリ秒タイムスタンプ + ランダム | モダンな時間ベース、単調増加、データベースに最適 |
既定で選ぶならバージョン 4 です。中身は乱数のビットだけなので何も漏らさず、衝突するのは理屈の上だけです。バージョン 7 は知っておく価値があります。時刻を先頭に置くため、この値の列は行が作られた順に並び、書き込みが散らばらずデータベースの索引がきれいなまま保たれます。バージョン 1 と 6 は同じタイムスタンプにノード欄を加えたもので、ここでのノードはマルチキャストビットを立てた乱数なので、実在のネットワークアドレスになることはありません。任意の UUID を読み解き欄に貼れば、バージョンと、含まれていれば作られた瞬間を教えます。
またデータを手作業で整えていませんか
毎回ブラウザーのタブで直しているペイロードは、本来コードの仕事です。当社はシステム間でデータを運ぶ連携、パーサー、サービスを構築し、途中で静かにデータを壊しているものを修復します。
何を移しているか教えてくださいよくある質問
どのバージョンを使えばよいですか
理由がなければバージョン 4 です。乱数であり、何も明かしません。値が索引付きのデータベース列に入るならバージョン 7 を選んでください。作成時刻の順に並ぶため、挿入が散らばらず索引がコンパクトに保たれます。
これを秘密情報として使えますか
いいえ。バージョン 4 の UUID は暗号学的に安全な乱数源から作られるので推測はできませんが、表示され、ログに残り、受け渡されることを前提に設計されています。識別子として扱い、パスワードやセッショントークンには決してしないでください。
バージョン 3 はどこへ行きましたか
MD5 とともに削除しました。バージョン 3 は定義上 MD5 であり、MD5 には実用的な衝突攻撃があります。バージョン 5 は SHA-1 で同じ役割を果たし、名前空間と名前も同じものを取るので、切り替えは設定を 1 つ変えるだけです。
2 人が同じ UUID を作ってしまうことはありますか
バージョン 4 では実際上ありません。乱数部分は 122 ビットあり、衝突が起こりそうになるには一生のあいだ毎秒何十億個も生成し続ける必要があります。バージョン 1、6、7 は時刻にも依拠するため、1 台の中での衝突はさらに起きにくくなります。
ノード欄が乱数なのはなぜですか
バージョン 1 と 6 は本来そこに機器のネットワークアドレスを入れており、値の出どころが漏れていました。このページは乱数バイトで埋め、マルチキャストビットを立てます。実在のハードウェアアドレスでないノードを示す方法として仕様が定めているのがこれです。