ジェネレーター
これらのジェネレーターは、ブラウザ内で識別子とプレースホルダー値を生成します。乱数はMath.randomからではなく、Web Crypto API(プラットフォームが鍵に使うのと同じ暗号学的ソース)から供給されます。生成した識別子をすべて見てきたサーバーからでもありません。
生成
SEOスキーマ生成
記事・商品・ビジネス向けの有効なJSON-LD構造化データを生成できます。
ツールを開くUUID生成
v4・v7・v1を一括生成し、既存のUUIDも検査可能
ツールを開くパスワードジェネレーター
長さと文字セットを調整して安全なパスワードを生成
ツールを開くAIトークンをカウント
GPT-4o・Claude・Geminiのトークンをカウントし、コストを見積もり
ツールを開く請求書作成
プロフェッショナルな請求書をPDFで作成
ツールを開くダミーテキスト生成
レイアウト崩し用の文を含むプレースホルダー文章を生成
ツールを開くQRコード作成
URLやWi-Fiパスワードを、タブから出さずに生成
ツールを開くバーコード作成
Code 128やEAN-13など、チェックデジット計算付きで生成
ツールを開くSVG波形ジェネレーター
セクション区切りの曲線をSVG・data URI・PNGで作成
ツールを開く
ブラウザベースの生成ツールはどんなときに使うべきですか?
ジェネレーターは、処理がどこで行われるかが問題にならない唯一の種類のツールに見えます。実際には2重に問題になります。
第1の理由は、サーバーサイドのジェネレーターはあなたに渡した識別子をすべて目にしていることです。それらが主キー、APIキー、招待トークン、あるいは権限の伴う他の何かになった場合、第三者がそのリストを握っていることになります。悪用される可能性は低いとしても、完全に回避できた露出であることに変わりはありません。ブラウザには十分に優れた暗号学的乱数ソースが組み込まれているのですから。
第2は品質です。嘆きたいほど多くのオンラインジェネレーターがMath.random()を呼び出しています。高速な非暗号学的PRNGです。出力はランダムに見える程度に一様で、先行する短い値列から予測できます。テストフィクスチャには無害です。アクセスを制御するものには脆弱性であり、出力を見ても両者を区別する手がかりはありません。これらのツールはcrypto.getRandomValues()だけを使います。
UUIDのバージョン選択は、最も正しく決める価値のある決断でありながら、たいてい偶然に任されています。v4(純粋なランダム)はほぼどこでもデフォルトですが、規模が大きくなると構造的な理由で主キーとして不適です。ランダムな値はB-treeインデックス上に散らばるため、挿入のたびに異なるページに触れ、キャッシュヒット率が崩壊し、インデックスは断片化します。チームがこれに気付くのは、たいてい数百万行を過ぎたあたりで、書き込みスループットが原因不明のままゆっくり劣化する形です。
v7は先頭48ビットにミリ秒のタイムスタンプを置くことでこれを解決します。時間的に近い識別子はソート順でも近くなり、挿入はインデックスのホットな末端に追記されていきます。RFC 9562のもとでデータベースキーの正しいデフォルトはv7です。ただしトレードオフは現実にあり、明記する価値があります。v7の識別子は、読める人には自分の生成時刻を公表します。公開に露出する識別子でそれが問題になるなら、v4が依然として正解です。
v1は完全性のために、またレガシーデータを読むために含まれています。v1はタイムスタンプを、本来の形では生成したマシンのMACアドレスをエンコードします。それが支持を失った理由であり、v1を作れることよりも検査できることの方が有用である理由でもあります。生成した値を別の表現に変換する必要があれば、Base64ツールが隣にあり、JSONフォーマッターは識別子を貼り込んだシードファイルを整えてくれます。
よくある質問
データベースの主キーにはUUID v4とv7のどちらを使うべきですか?
インデックス列に入るものにはv7を。v4は122ビットの乱数のため、連続する挿入がB-treeインデックス上の無作為な地点に着地します。挿入のたびに別のページが汚れ、インデックスは断片化し、テーブルの成長に伴って書き込みスループットが測定できるほど劣化します。v7は上位ビットに48ビットのミリ秒タイムスタンプを置くため、新しく生成した値は互いに近い順にソートされ、挿入はインデックスの同じ領域に追記されていきます。識別子が公開されるもので生成時刻を漏らしてはならない場合は、v4が依然として正しい選択です。
これらのUUIDは本当にランダムですか?それともシード付きのPRNGですか?
crypto.getRandomValues()から供給されます。Web Crypto APIの暗号学的に安全なジェネレーターで、OSのエントロピープールを源としています。鍵素材に使われるのと同じソースであり、Math.random()とは本質的に異なります。Math.random()は高速な非暗号学的PRNGで、その出力はわずかな先行値から予測できます。
RFC 9562とは何ですか?何か変わるのですか?
2024年5月に公開されたRFC 9562は、RFC 4122に代わるUUIDの標準です。v1とv4はそのままに、時系列順のv6、v7、v8を追加しました。実務上意味のある変化は、v7が標準になったことです。ULIDやKSUIDのような、互換性のないベンダー拡張の寄せ集めではなくなりました。
一度にたくさん生成できますか?
はい。一括生成は1バッチあたり最大10,000件までで、出力はプレーンな行、引用符付き文字列、JSON配列、選択した区切り文字から選べ、シードファイルやフィクスチャに貼り付ける準備が整っています。生成は同期処理でほぼ瞬時です。実用上の上限は、ブラウザが生成できる量ではなく、あなたが貼り付けられる量です。
既存のUUIDが何なのか調べられますか?
はい。インスペクターに1つ貼り付けると、バージョン、バリアント、そしてv1、v6、v7の場合は埋め込まれたタイムスタンプを読める日付にデコードした値を報告します。テーブル内の識別子が時系列順かどうか、公開するつもりのなかった生成時刻を漏らしていないかを知る最も速い方法です。