DevToolPal
日本語

Nano ID 生成ツール

Nano ID を生成します。安全な乱数による短く URL セーフな一意の ID で、長さは自由、プリセットまたはカスタムの文字セット、衝突確率の目安も表示します。

ローカルで処理、アップロードなし

オプション

1 ID あたり 126 ビット · 約 1.3 × 10¹⁸ 個で衝突確率 1%

Nano ID

0 文字 · 0 B

概要

このツールは Nano ID を生成します。データベースのキー、ファイル名、短縮 URL のスラッグ、招待コード、テストデータに使える、短くランダムで URL セーフな識別子です。Nano ID ライブラリと同じ方法を使うので、コードで nanoid() を呼んだときと同じ見た目と性質の ID になります。

長さを変えたり、組み込みの文字セットを選んだり独自の文字セットを入力したりでき、一度に最大 1000 個生成できます。オプションの下には ID あたりのエントロピーと、重複の確率が 1% に達するまでに作れるおおよその個数が表示されます。

使い方

  1. 長さを選びます。21 が Nano ID の既定値です。
  2. 文字セットを選びます。URL セーフ、英数字、小文字と数字、16 進数、数字のみ、紛らわしい文字なし、またはカスタムです。
  3. 必要な個数を選びます。設定を変えるとすぐに生成されます。
  4. 生成で新しいセットを作り、1 行に 1 つずつ並んだリストをコピーまたはダウンロードします。

例

nanoid パッケージを使って JavaScript で同じ ID を作る例です。

import { nanoid, customAlphabet } from 'nanoid'

nanoid() // "V1StGXR8_Z5jdHi6B-myT"
const orderId = customAlphabet('0123456789ABCDEFGHJKLMNPQRSTUVWXYZ', 12)
orderId() // "4KQ7ZB9XH2MD"

文字セットの選び方

URL セーフの文字セットは 1 文字あたりのランダム性が最も大きく、URL、ファイル名、JSON でエスケープが不要です。英数字は _ と - を除くので、ダブルクリックで ID 全体を選択できます。16 進数や数字のみは、それしか受け付けないシステムに便利ですが、同じ強度にはより長い ID が必要です。紛らわしい文字なしのセットは 0 と O、1・l・I などを除くので、人が読んだり入力したりしやすくなります。

よくある質問

› Nano ID とは何ですか?

Nano ID はランダムな一意 ID の形式であり、人気の JavaScript ライブラリです。既定の ID は 64 文字の URL セーフな文字(A–Z、a–z、0–9、_、-)から選ばれた 21 文字で、126 ビットのランダム性があります。UUID v4 の 122 ビットに近い強度を、ずっと短い文字列で実現します。

› ID の長さはどれくらいにすべきですか?

作成する ID の数によります。オプションの下の目安は、何個作るとどれか 2 つが一致する確率が 1% になるかを示します。既定の 21 文字はほぼどんなシステムでも安全です。短縮 URL や招待コードなら 10〜12 文字で足りることが多く、データベースの一意性チェックと組み合わせます。

› セキュリティ用途に十分ランダムですか?

文字はブラウザーの暗号学的乱数生成器から作られ、文字セットに収まらない値は剰余で丸めずに捨てるため、どの文字も同じ確率で出ます。十分に長い ID は推測できないトークンとして使えます。サーバーには何も送信されません。

› 独自の文字を使えますか?

はい。「カスタム」を選んで文字セットを入力します。たとえば読み上げるコードなら大文字だけにできます。2〜256 個の異なる文字が必要です。重複した文字は特定の文字を出やすくしてしまうため受け付けません。