テストデータの識別子、一時ファイルの名前、クーポンコード。重複しない文字列が必要になる場面は多いのに、その場で作るのは意外と面倒です。
このツールは、UUID v4を最大100個まとめて生成します。ハイフンなし、大文字、16進数、紛らわしい文字を除いた英数字など、用途に応じた形式を選べます。ブラウザの暗号用乱数を使うため、推測されにくい値が得られます。
生成はすべてブラウザ内で行われ、値がサーバーに送られることはありません。
UUID・ランダム文字列生成
UUID v4のほか、用途に応じた形式のランダムな識別子を生成します。
ブラウザの暗号用乱数を使って生成します。値は送信されません。
UUID v4とは何か
UUIDは128ビットの識別子で、中央のサーバーに問い合わせずに、それぞれの環境で独立して作っても重複しないことを狙った仕組みです。
| 項目 | 内容 |
|---|---|
| 長さ | 128ビット(16進数で32文字) |
| 表記 | 8-4-4-4-12 のハイフン区切り |
| version 4 | ランダムな値から生成する方式 |
| 固定される部分 | バージョンと変種を示す一部のビット |
| 実際にランダムな部分 | 122ビット |
| 重複の可能性 | 実用上は無視できる水準 |
122ビットは、2の122乗という桁数です。数十億個を生成しても衝突する確率は極めて低く、実務では重複を考慮する必要はないとされています。
バージョンによる違い
| version | 生成の元 | 特徴 |
|---|---|---|
| v1 | 時刻とMACアドレス | 生成順に並ぶが、機器情報が含まれる |
| v4 | 乱数 | 最も広く使われる。推測されにくい |
| v5 | 名前空間と文字列のハッシュ | 同じ入力から常に同じ値 |
| v7 | 時刻 + 乱数 | 時刻順に並び、データベースの索引に向く |
このツールが生成するのはv4です。用途が「重複しない識別子」であればv4で問題ありません。データベースの主キーとして大量に使い、挿入性能を重視する場合は、時刻順に並ぶ方式が有利になることがあります。
「紛らわしい文字を除いた英数字」の用途
人が読んで入力する可能性のある文字列では、見間違えやすい文字を最初から除外しておくと事故が減ります。
| 除外する文字 | 紛らわしい相手 | 起きること |
|---|---|---|
| 0(ゼロ) | O(オー) | 入力ミス |
| O(オー) | 0(ゼロ) | 同上 |
| 1(イチ) | l(小文字のエル)、I(大文字のアイ) | 同上 |
| l(小文字のエル) | 1、I | 同上 |
| I(大文字のアイ) | 1、l | 同上 |
| 用途 | おすすめの形式 | 理由 |
|---|---|---|
| システム内部の識別子 | UUID v4 | 人が読まない。重複しない |
| URLに含める | UUID(ハイフンなし)または英小文字と数字 | 短く、記号を含まない |
| 電話や口頭で伝える | 紛らわしい文字を除いた英数字 | 聞き間違いを防ぐ |
| 紙に印刷して配る | 同上 | 読み間違いを防ぐ |
| ファイル名 | 16進数 | どの環境でも安全な文字だけ |
| パスワード | パスワード生成ツール | 記号を含めた強度が必要 |
クーポンコードや会員番号のように、人が手で入力するものには「紛らわしい文字を除いた英数字」を使ってください。サポートへの問い合わせが目に見えて減ります。
組み合わせの強さの読み方
このツールが表示する「ビット相当」は、その文字列が取りうる組み合わせの多さを表します。
| ビット | おおよその組み合わせ | 用途の目安 |
|---|---|---|
| 32ビット | 約43億 | 推測されうる。識別子には短い |
| 64ビット | 約1800京 | 多くの用途で十分 |
| 80ビット | — | 推測を前提とした用途でも実用的 |
| 122ビット(UUID v4) | — | 重複も推測も実用上考えなくてよい |
| 128ビット以上 | — | 暗号鍵の水準 |
文字数を増やすより、使う文字の種類を増やすほうが効率的に強くなります。ただし、人が入力する文字列では紛らわしい文字を除くほうが実用的なので、そこは用途との兼ね合いです。
推測されては困る値には、必ず暗号用乱数を使ってください。このツールはブラウザの暗号用乱数を使用しており、結果欄にどちらを使ったかが表示されます。通常の乱数(時刻などから作る簡易な乱数)は、生成のタイミングから値を絞り込まれる可能性があります。
使うときの注意
| 項目 | 注意点 |
|---|---|
| パスワードとして使う | 記号を含まないため、パスワード用途にはパスワード生成ツールを推奨 |
| URLに含める | 推測されにくいが、URLを知っていれば誰でも開ける。認証の代わりにはならない |
| ファイル名に使う | 16進数または英小文字と数字を推奨。大文字小文字を区別しない環境がある |
| データベースの主キー | v4はランダムなため挿入順に並ばない。索引の性能に影響する場合がある |
| 個人情報との対応付け | UUID自体に意味はないが、対応表があれば個人を特定できる |
「推測されにくいURL」を認証の代わりに使うのは避けてください。共有された時点で誰でもアクセスできますし、ブラウザの履歴や参照元情報から漏れる経路もあります。本当に守るべき情報には、きちんとした認証を用意してください。
ハッシュ値を計算したい場合はハッシュ値生成を、パスワードの強度を確認したい場合はパスワード強度チェッカーをご利用ください。
まとめ
UUID v4は、中央で番号を管理しなくても重複しない識別子を作るための仕組みです。ランダムな部分が122ビットあるため、実務で衝突を心配する必要はありません。
人が手で入力する文字列には「紛らわしい文字を除いた英数字」を使ってください。0とO、1とlとIの取り違えは、実際に問い合わせの原因になります。推測されては困る値には、必ず暗号用乱数で生成されたものを使ってください。