UUID ジェネレーター
UUID v1・v3・v4・v5・v6・v7 に加えて ULID、NanoID、MongoDB の ObjectId を生成します。まとめて、コードが求める形そのままで、ネットワーク通信は一切ありません。
ブラウザーの暗号論的乱数から 122 ビットのエントロピー。とにかく一意であればよいときの既定の選択肢です。
まだ何も生成されていません。種類を選び、個数を決めて「生成」を押してください。
使い方
種類を選ぶ
全 11 種類。定番の v4 から時系列に並ぶ v7、ULID、Mongo の ObjectId まで。
バッチを決める
個数と形。大文字小文字、ハイフン、囲み記号、接頭辞、書き出し形式。
「生成」を押す
押すまで何も動きません。バッチはワーカーで作られ、0.1 ミリ秒単位で計測されます。
持ち出す
コピー、txt・csv・json・SQL でのダウンロード、あるいは一覧を別のツールへ直接送れます。
11 種類の識別子
UUID v1・v3・v4・v5・v6・v7・nil・max に加え、ULID、NanoID、MongoDB の ObjectId。
時系列で単調に並ぶ
v7・v6・ULID はカウンターを持つので、同じミリ秒に作られた識別子も生成順のまま並びます。
読み解くこともできる
識別子を貼り付ければ、バージョン、バリアント、時刻、ノード、生バイトが見え、ニブル単位で書き換えられます。
メインスレッドの外で
バッチは Web Worker で実行され、正確な所要時間とバッチ全体の重複チェックが付きます。
必要な形で書き出す
大文字小文字、ハイフン、波かっこ、urn:uuid:、引用符、接頭辞と接尾辞。txt・csv・json・SQL で出力。
タブの外には出ない
エントロピーは Web Crypto から。ネットワーク通信は一切なく、訪問のあいだに何も保存しません。
あらゆる識別子形式を、手元で生成
多くのジェネレーターは v4 を出して終わりです。このツールは RFC 9562 の全ファミリー、実務でそれを置き換えたソート可能な形式、他のエコシステムで使われる識別子まで揃え、マイグレーションやシードファイル、テストフィクスチャーが求める形そのままで出力します。
構造からしてソート可能
ランダムな v4 キーは B-tree インデックス全体に書き込みを散らします。v7・v6・ULID は時刻を先頭に置くため、新しい行はインデックスの末尾にまとまります。さらにミリ秒ごとのカウンターにより、密なループの中でも順序が崩れません。
識別子を作った「あと」の作業のために
10 万件のキーを生成し、そのまま SQL の INSERT や JSON 配列として書き出し、ダウンロードフォルダーを経由せずに差分・ハッシュ・アーカイブの各ツールへ渡せます。
エントロピーはタブ内の Web Crypto API から取得します。API 呼び出しも CDN 取得も、別途の WebAssembly ダウンロードもありません。v3 と v5 のハッシュはページ自体に埋め込まれているため、ネットワークを切っても動作します。
よくある質問
Qどのバージョンを使えばよいですか。+
一意性だけが必要なら v4。主キーになるなら v7 で、先頭のタイムスタンプがインデックスへの書き込みをまとめてくれます。同じ入力から常に同じ識別子が要るなら v5 です。
Qv5 を 10 個頼むと全部同じになるのはなぜですか。+
それが v5 の定義だからです。名前空間 1 つと名前 1 つから識別子は 1 つ決まります。10 個違うものが欲しいなら、名前を 10 個、1 行に 1 つずつ渡してください。
Qv7 と ULID の違いは何ですか。+
どちらも 48 ビットのミリ秒タイムスタンプ+乱数です。v7 は正真正銘の UUID で UUID 列に収まります。ULID は base32 の 26 文字で読みやすく大文字小文字を区別しませんが、UUID ではありません。
Q暗号論的に安全ですか。+
乱数は crypto.getRandomValues 由来で、ブラウザーが自身の鍵素材に使うのと同じ供給源です。ただし v1 と v7 は生成時刻を意図的に含むため、秘密の値にはなりません。
Q一度に何件まで作れますか。+
1 バッチあたり 100 000 件までです。画面の一覧は動作を軽く保つため先頭 300 行のみですが、コピー・ダウンロード・受け渡しボタンは常にバッチ全体を扱います。
Qサーバーに何か送信されますか。+
いいえ。生成も解析も書き出しもブラウザー内で完結し、使用中にページはいかなるリクエストも行いません。