UUID 生成

ボタンを押せば、データベースや設定ファイル、テストデータにそのまま貼れる識別子が手に入ります。生成はページ内で完結し、他人が既に見た番号がサーバーから渡されることはありません。

ブラウザ内の暗号学的乱数から生成します。サーバーには何も問い合わせません。

使い方

知っておくと便利

バージョン4が実際に保証すること

v4 の UUID は 122 ビットの乱数と、版と変種を示す 6 ビットの固定値でできています。カウンタも MAC アドレスもタイムスタンプも含まれず、端末の情報が漏れ出すことはありません。衝突の確率は十分に小さいため、データベースは確認せずに一意として扱います。

「適当」ではなく「乱数」

値は Math.random ではなく crypto.getRandomValues から取っています。ブラウザが鍵を作るときと同じ源です。識別子がリンクやトークンに入った瞬間、この違いが効いてきます。予測できる「乱数」は推測でき、推測できるものは見つけられてしまいます。

よくある質問

識別子はサーバーで作られますか。

作られません。ブラウザ内で生成し、どこにも送信しません。いま作った一覧の控えは誰も持っていません。

二人が同じ UUID を得ることはありますか。

実際上ありません。122 ビットの乱数では、毎秒何十億個を数十年間生成して初めて衝突が現実味を帯びます。

UUID をパスワードやトークンに使えますか。

秘密としては確かに乱数ですが、普通の識別子と同じように保存され、ログにも残ります。認証には本来のトークンを、識別には UUID を使ってください。

どの形式を選べばよいですか。

小文字・波かっこなしが標準形で、多くのデータベースが想定する書き方です。波かっこと大文字は、いまもそう出力する Microsoft 系のツール向けです。

関連ツール