Nano ID生成ツール

URLセーフな短い一意のIDをブラウザ上で一括生成します。文字種(既定・英数字・小文字・大文字・数字・16進数)と長さを自由に指定でき、UUIDより短いIDが必要な場面に最適です。

ID形式の比較

形式 長さ 文字種の異なり数 生成順に並べ替え可能か 説明
Nano ID 既定21文字(1〜64文字で指定可) 64文字 いいえ(完全ランダム) URLセーフな文字のみで構成される短いランダムID。文字種・長さを自由に変更できる。
UUID v4 36文字(ハイフン4個含む) 16文字(16進数) いいえ(完全ランダム) RFC 9562で標準化された128ビットの識別子。ハイフン区切りの16進数表記が標準形式。
ULID 26文字 32文字(Base32) はい(先頭10文字がタイムスタンプ) 先頭にミリ秒単位のタイムスタンプを持つため、生成順に文字列としてソートできる。
広告

Nano IDとは

Nano IDは、URLセーフな文字だけで構成される短いランダムIDを生成する仕組みです。既定では64文字種(A-Za-z0-9_-)から21文字を組み合わせて作られ、UUIDよりも短くしながら実用上十分なランダム性を確保できます。このツールでは文字種(既定・英数字・小文字・大文字・数字・16進数)と長さ、生成件数を自由に指定して、まとめてIDを作成できます。

生成処理はすべてブラウザ内で完結し、Web Crypto APIの暗号論的乱数を使うためtoolbase.ccのサーバーには一切送信されません。入力フォームに秘密情報を扱う必要がなく、生成したIDをそのままコピーしてURLのスラッグやテストデータ、ファイル名などに利用できます。

Nano IDの使い方

  1. 文字種を選ぶ 既定(URLセーフ64文字)・英数字・小文字のみ・大文字のみ・数字のみ・16進数から用途に合う文字種を選びます。
  2. 長さを設定する 生成するIDの文字数を指定します。短くするほど衝突確率は上がるため、用途に応じたバランスを意識します。
  3. 生成件数を指定する 一度に作成したいIDの数を入力します。テストデータの一括作成など複数件必要な場合はここでまとめて指定できます。
  4. 生成ボタンを押す 「生成する」を押すと、指定した条件に沿ったIDがブラウザ内で即座に作成され一覧表示されます。
  5. コピーする 個々のIDは「コピー」ボタンで、まとめて使いたい場合は「すべてコピー」で一括コピーできます。

使いこなすためのヒント

  • Nano IDはWeb Crypto APIベースの暗号論的乱数で生成され、ブラウザ内で処理されるためtoolbase.ccのサーバーには一切送信されません。
  • 既定の64文字アルファベット(A-Za-z0-9_-)は記号やスペースを含まないため、そのままURLのパスやファイル名として安全に使えます。
  • 文字種を「数字のみ」や「16進数」に絞ると、既存システムのID形式(例: 注文番号は数字のみ)に合わせたIDを生成できます。
  • 長さを短くするほど衝突確率は上がります。発行数が多いシステムでは既定値の21文字前後を、少量のテストデータには8〜10文字程度でも十分な場合があります。
  • 生成件数を増やしてから「すべてコピー」を使うと、テスト用データやシードデータの一括作成に便利です。

Nano IDの活用シーン

URLのスラッグ生成

短縮URLや共有リンクのパス部分に使う一意なIDとして、記号を含まないURLセーフな文字列をそのまま使えます。

テスト・ダミーデータの投入

開発中のデータベースに投入するサンプルレコードの主キーや識別子として、必要な件数を一括生成できます。

セッションIDやリクエストIDの発行

ログの追跡やAPIリクエストの識別に使う一時的なIDとして、短く扱いやすい文字列を用意できます。

衝突を避けたいファイル名の採番

アップロードファイルの保存名にランダムなIDを付与し、同名ファイルによる上書きを防ぎたい場合に活用できます。

簡易的なAPIキーや参照コードの発行

本番用の認証情報ではなく、社内ツールや検証環境で使う短い参照コードの採番に手軽に使えます。

広告

用語集

Nano ID
URLセーフな文字種のみで構成される短いランダムID生成方式です。既定では21文字・64文字種で高いランダム性を確保します。
UUID
RFCで標準化された128ビットの識別子です。ハイフン区切りの36文字の16進数表記が標準形式として広く使われています。
ULID
先頭にミリ秒単位のタイムスタンプを持つ26文字のIDです。生成順に文字列としてソートできる点がNano IDやUUIDと異なります。
Web Crypto API
ブラウザが標準で備える暗号処理用のAPIです。予測困難な乱数を生成でき、IDの安全性の根拠になっています。
暗号論的乱数
次の値を統計的に予測できないよう設計された乱数です。IDの推測やなりすましのリスクを下げます。
衝突確率
異なる入力から偶然同じIDが生成されてしまう確率です。文字数・文字種が多いほど衝突確率は低くなります。
誕生日問題
集団の人数が増えるほど同じ誕生日の人が現れやすくなる現象で、IDの衝突確率を見積もる際の近似計算に使われます。

よくある質問

短いIDをURLやファイル名にそのまま使いたい場合はNano IDが適しています。RFCで標準化された形式が必要、または他システムとの相互運用性を重視する場合はUUID(特にv4)が無難です。

既定の21文字・64文字種の場合、126ビット相当のランダム性を持つため実用上は無視できるレベルです。衝突確率が50%に達するまでに必要な生成数は約1.09×10¹⁹個と計算されます。

使えますが、UUID v4と同様に完全ランダムなためB-Treeインデックスへの挿入効率はAUTO_INCREMENTに劣ります。挿入順のソート性が必要な場合は、タイムスタンプを先頭に持つULIDなどの検討をおすすめします。

はい。同じ長さでも文字種の異なり数(アルファベットサイズ)が小さいほどランダム性(衝突確率への強さ)は下がります。数字のみ(10文字種)で64文字種アルファベットと同等の安全性を得るには、より長い文字数が必要です。
ツールくん

余談ですが ― なぜNano IDはUUIDより短くできるのか

Nano IDは2017年にPostCSSの開発者Andrey Sitnikが公開したJavaScript製のID生成ライブラリです。UUIDよりも短く、依存関係を持たない軽量な実装(コード量はわずか数百バイト)でありながら暗号論的に安全な乱数を使う設計が評価され、npmで週間数千万ダウンロードを記録する定番ライブラリになりました。

IDの短さは使う文字種の多さで決まります。UUIDは16進数(16文字種)だけで128ビットを表現するため36文字必要ですが、Nano IDは64文字種を使うことで同程度のランダム性(既定設定で126ビット)をわずか21文字で表現できます。1文字あたりの情報量(log₂64=6ビット)が16進数(log₂16=4ビット)より大きいことが短縮の理由です。

既定設定(21文字・64文字種)が持つ126ビットのランダム性は、UUID v4の122ビットとほぼ同等です。衝突確率が50%に達するまでに必要な生成数は、誕生日問題の近似式から約1.09×10¹⁹個と計算でき、実用上の心配はほぼありません。

広告