onlinetools.dev

UUIDジェネレーター

UUID v4/v7、ULID、Nano ID を生成 — 単発でも一括でも

ローカル実行
loading…
このツールについて

4 種類のユニバーサル一意識別子を生成します。UUID v4(完全にランダム、日常のデフォルト)、UUID v7(時刻順、データベースキーのモダンな選択肢)、ULID(時刻順で、コンパクトな Crockford Base32 表記)、Nano ID(短く URL フレンドリー)。1 個から最大 1000 個まで一度に生成でき、1 行に 1 つずつ、シードスクリプトにそのまま貼り付けられます。

ランダム性は暗号学的に安全なソースである Web Crypto API(crypto.getRandomValues)から得ており、Math.random ではありません。生成はローカルで行われるため、これらの ID は他の誰にも知られず、どこにも記録されず、オフラインでも利用できます。

新しいシステムの ID 形式を選んでいるなら:v7 と ULID は作成時刻でソートされるため、B-tree インデックスが健全に保たれ、ログ内の ID もおおむね時系列に並びます。v4 は生成時期について何も明かしません — それがまさに望みどおりという場面もときにはあります。

よくある質問

UUID v4 と v7 の違いは何ですか?
v4 は 122 ビットのランダム値です。v7(RFC 9562)は 48 ビットの Unix ミリ秒タイムスタンプで始まり、その後にランダムビットが続くため、後に生成された ID は後にソートされます。データベースの主キーとしては、v7 は挿入の局所性とインデックスサイズを改善するのが普通です。順序が無関係な場面や、タイミングを漏らしてはならない場面では v4 が引き続き適切です。
生成された 2 つの UUID が衝突することはありますか?
122 ビットのランダム値では、確率は工学的対策を講じる価値がないほど小さいものです。かすかな可能性に達するだけでも、毎秒数十億個の ID を数十年生成し続ける必要があります。実際の衝突はランダム性からではなく、バグ(シードの再利用、行のコピー)から生じます。
UUID v7 ではなく ULID を選ぶ理由は?
両者は同じ問題を解決します。ULID は大文字小文字を区別しない Crockford Base32 の 26 文字で、URL やログでより短くすっきりします。v7 は標準の 36 文字の UUID の形を保っており、あらゆるデータベースとライブラリがすでに受け付けます。あなたのエコシステムがよりネイティブに扱えるほうを選んでください。
これらの ID はシークレットやトークンとして安全に使えますか?
ランダム性は暗号学的に安全ですが、ID は通常、表示され、記録され、インデックスされます — つまり公開情報として扱われます。セッショントークンや API キーには、少なくとも 128 ビットのランダム値を持つ専用のシークレットを生成し、パスワードと同じように扱ってください。
関連ツール