Nano ID ジェネレーター
Nano IDをオンラインで生成。サイズ(1–128)とアルファベット(URLセーフ・英数字・16進数・数字のみ・カスタム)をカスタマイズ可能。単体またはバッチ(最大100件)対応。ブラウザ内で処理、nanoidライブラリ使用。
- ブラウザ内で処理
- データはブラウザ外に出ません
- 無料 · 登録不要
WeChat でスキャンしてシェア
例・詳しい説明・よくある質問 実際の出力つきの例、ほかのツールとの違い、よくある質問。
Nano ID vs UUID 比較
| 機能 | Nano ID(デフォルト) | UUID v4 |
|---|---|---|
| 長さ | 21文字 | 36文字(ハイフン含む) |
| ランダム性 | 約126ビット | 122ビット |
| URLセーフ | ✓ はい | ✓ はい(ハイフンも URL でそのまま使える文字) |
| カスタムアルファベット | ✓ はい | ✗ いいえ |
| ソート可能 | ✗ いいえ | ✗ いいえ |
| タイムスタンプ内蔵 | ✗ いいえ | ✗ いいえ |
アルファベット一覧
| プリセット | 文字 | 数 |
|---|---|---|
| URLセーフ(デフォルト) | A-Za-z0-9_- | 64 |
| 英数字 | A-Za-z0-9 | 62 |
| 数字のみ | 0-9 | 10 |
| 16進数小文字 | 0-9a-f | 16 |
桁数と衝突の起こりやすさ
ID は毎回ランダムなので、生成結果そのものは下の例と一致しません。設定から決まるのは、1 文字あたり log2(アルファベットの文字数) ビットというランダム性と、何個作ると重複が出る確率が 1% に達するか(誕生日問題による近似)の 2 つです。
まず、窓口で読み上げる受付番号のような「数字だけの 4 桁」で考えてみます。
- ランダム性:
4 × log2(10) = 13.3ビット - 重複の確率が 1% になる個数:
≈ 14
わずか 14 個ほどで 1% に届きます。会員向けのクーポンコードや確認コードを数字だけの短い桁数で配るなら、ランダム生成に頼らず、発行済みのコードと照合してから配る必要があります。
反対に、16 進数を 32 桁にすると次のとおりです。
- ランダム性:
32 × log2(16) = 128.0ビット - 重複の確率が 1% になる個数:
≈ 2.6 × 10^18
ハイフンを除いた UUID と同じ 32 桁の 16 進数ですが、UUID v4 はそのうち 6 ビットがバージョンとバリアントに固定されるので、ランダムな部分は 122 ビットです。ここで作る値はバージョン番号を持たないため、UUID の列に入れる値としては使えません。
全角数字が混ざったカスタムアルファベット
カスタムのアルファベットはコードポイント単位で数え、全角と半角を別の文字として扱います。日本語入力がオンのまま数字を入れ足すと、次のように 20 種類の記号になります。
- 入力:
01234567890123456789 - 記号の数は 20 なので、サイズ 8 のランダム性は
8 × log2(20) = 34.6ビット - 重複の確率が 1% になる個数:
≈ 22,700
生成される ID には 3 のような全角数字が混ざり、紙に印刷すると半角の 3 と見分けにくくなります。全角文字は UTF-8 で 3 バイトになるので、バイト数で長さを制限している列では途中で切れることもあります。ツールは全角を半角に直さないため、入力する前に日本語入力をオフにしてください。
同じ文字だけを入れた場合は、重複を除くと 1 種類しか残らず、生成せずにエラーを表示します。
入力 ああ、表示 アルファベットは2文字以上必要です
制限
- バッチ数は 1〜100、サイズは 1〜128 の範囲に収めます。サイズが空欄か 0 のときは 21 になります。
- カスタムアルファベットの重複文字は削除され、異なる記号が 2 つ未満だとエラーになります。
- カスタムアルファベットはコードポイント単位で読みます。
😀😃🐱は 3 記号で、サイズ 8 の ID は 8 記号(UTF-16 では 16 コード単位)です。国旗や肌の色付きの絵文字のような組み合わせ文字は複数のコードポイントなので、別々の記号に分かれます。 - プリセットは Nano ID 3.3.11 で生成します。カスタムでは 1 記号ごとに 32 ビットの乱数を 1 つ取り、アルファベットの文字数の最大の倍数以上の値を捨てるので、どの記号も同じ確率で出ます。
- Nano ID はタイムスタンプを持たず、作成順に並びません。並べ替えられるキーが必要なら ULID ジェネレーター を使ってください。
関連ツール
- UUID ジェネレーター — 標準的なUUID v4を生成
- ULID ジェネレーター — タイムスタンプ内蔵のソート可能ID
FAQ
Nano IDとは何ですか?
Nano ID は、小さく安全で URL にそのまま使える文字列 ID を作るライブラリです。既定では URL セーフなアルファベット(A-Za-z0-9_-)から 21 文字を選び、約 126 ビットのランダム性があります。UUID v4 の 122 ビットと同程度で、UUID より短く、タイムスタンプは含みません。
Nano IDとUUIDの違いは何ですか?
UUID v4 はハイフンを含めて 36 文字です。既定の Nano ID は 21 文字で、ランダム性は同程度(約 126 ビット)です。区切り文字がなく URL にそのまま使え、アルファベットと長さを変えられるので、URL・ファイル名・データベースのキーに合わせやすくなっています。
利用可能なアルファベットは何ですか?
URLセーフ(デフォルト):A-Za-z0-9_-(64 文字)。英数字:A-Za-z0-9(62 文字)。数字のみ:0-9(10 文字)。16進数小文字:0-9a-f(16 文字)。カスタム:任意の文字を入力でき、Unicode コードポイント単位で分けて重複を除きます。異なる記号が 2 つ以上必要です。
適切なサイズはどう選べばよいですか?
既定の 21 文字は URL セーフなアルファベットで約 126 ビットのランダム性があります。16 文字しかない 16 進数のように小さいアルファベットを使う場合は、同じ衝突確率を保つためにサイズを大きくします。1 文字増えるごとに log2(アルファベットの文字数) ビットずつ増えます。
生成した ID はどこかに送信・保存されますか?
されません。ID はブラウザ内で Web Crypto API(crypto.getRandomValues)を使って生成し、生成した ID もカスタムアルファベットも ZeroTool には送られず、ページを離れるとツールには残りません。ページの Google Analytics が記録するのは使った操作(生成、コピー)の種類だけで、ID は含みません。