メインコンテンツへスキップ
← ホーム

UUID v1ジェネレーター

タイムスタンプベースのバージョン1 UUIDを生成

UUID v1とは?

v1 UUIDには、60ビットのタイムスタンプ(1582年10月15日からの100ナノ秒単位の間隔)、クロックシーケンス、ノードIDが含まれます。このジェネレーターはMACアドレスではなく、ランダムなノードIDを使います。タイムスタンプのフィールドは下位ビットから格納されるため、v1の文字列は時刻順に並びません。並べ替え可能なIDにはv7を使い、v1はCassandraのtimeuuidのようにシステムが必要とする場合にだけ使ってください。

使用例

UUID v1 — 13桁目(バージョン)は常に1
6ba7b810-9dad-11d1-80b4-00c04fd430c8
Pythonで生成する
import uuid
uuid.uuid1()

よくある質問

UUID v1からMACアドレスがわかってしまいますか?

従来のv1の実装ではネットワークカードのMACアドレスが埋め込まれており、マシンを特定できる可能性がありました。このジェネレーターはランダムなノードIDを使うため、ハードウェアのアドレスが露出することはありません。ただし、作成日時はどのv1 UUIDからも読み取れます。

UUID v1から作成日時を取り出せますか?

はい。タイムスタンプはtime_low、time_mid、time_hiの各フィールドに格納されているため、作成日時を100ナノ秒の精度で復元できます。

UUID v1とUUID v7、どちらを使うべきですか?

新しいシステムならv7をおすすめします。v7もタイムスタンプを含みますが、自然な順序で並び、ノード識別子を含みません。v1は互換性が必要な場合にのみ選んでください。

関連ツール